home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 1 / Meeting Pearls Vol 1 (1994).iso / installed_progs / gfx / daggex / docs / clients / xv.doc < prev   
Encoding:
Text File  |  1994-06-04  |  132.2 KB  |  3,234 lines

  1.  
  2.  
  3.  
  4.    Feb 26, 1992                                                         xv(l)
  5.  
  6.  
  7.  
  8.    NAME
  9.      xv - interactive image display for the X Window System
  10.  
  11.    SYNTAX
  12.      xv [_o_p_t_i_o_n_s] [_f_i_l_e_n_a_m_e [_f_i_l_e_n_a_m_e...]]
  13.  
  14.    NOTE
  15.      This man page is merely the text portion of the (PostScript) _x_v docs,
  16.      without the figures, and without the appendicies.  As such, it is highly
  17.      recommended that you get your hands on the *real* documentation.
  18.  
  19.    DESCRIPTION
  20.      _x_v is an X11 program that displays images in the GIF, JPEG, TIFF, PBM,
  21.      PGM, PPM, X11 bitmap, Utah Raster Toolkit RLE, PDS/VICAR, Sun Raster-
  22.      file, and PM formats on 1-, 2-, 4-, 6-, 8-, 16-, 24-, and 32-bit X
  23.      displays.  _x_v will also read _c_o_m_p_r_e_s_s-ed versions of these files.
  24.  
  25.  
  26.    SECTION 1: OVERVIEW
  27.  
  28.      _x_v version 2.10 lets you do a large number of things (many of them actu-
  29.      ally useful), including, but not limited to, the following:
  30.  
  31.      o+  display an image in a window on the screen
  32.  
  33.      o+  display an image on the root window, in a variety of styles
  34.  
  35.      o+  grab any rectangular portion of the screen and turn it into an image
  36.  
  37.      o+  arbitrarily stretch or compress the image
  38.  
  39.      o+  rotate the image in 90-degree steps
  40.  
  41.      o+  flip the image around the horizontal or vertical axes
  42.  
  43.      o+  crop a rectangular portion of the image
  44.  
  45.      o+  magnify any portion of the image by any amount, up to the size of the
  46.         screen
  47.  
  48.      o+  determine pixel values and x,y coordinates in the image
  49.  
  50.      o+  adjust image brightness and contrast with a gamma correction function
  51.  
  52.      o+  apply different gamma functions to the Red, Green, and Blue color
  53.         components, to correct for non-linear color response
  54.  
  55.      o+  adjust global image saturation
  56.  
  57.      o+  perform global hue remapping
  58.  
  59.      o+  perform histogram equalization
  60.  
  61.  
  62.  
  63.    Rev: 2.10                                                                1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.    xv(l)                                                         Feb 26, 1992
  71.  
  72.  
  73.      o+  edit an image's colormap
  74.  
  75.      o+  reduce the number of colors in an image
  76.  
  77.      o+  dither in color and b&w
  78.  
  79.      o+  smooth an image
  80.  
  81.      o+  crop off solid borders automatically
  82.  
  83.      o+  convert image formats
  84.  
  85.      o+  generate Encapsulated PostScript
  86.  
  87.      Unfortunately the _A_u_t_o_m_a_t_i_c _C_h_e_c_k_b_o_o_k _B_a_l_a_n_c_i_n_g _M_o_d_u_l_e still isn't com-
  88.      pletely debugged, and is not included in this distribution.
  89.  
  90.  
  91.    SECTION 2: STARTING XV
  92.  
  93.      Note: unless explicitly stated otherwise, the term _c_l_i_c_k means "click
  94.      with the _L_e_f_t mouse button."
  95.  
  96.      Start the program up by typing 'xv'.  After a short delay, a window will
  97.      appear with the default image (the _x_v logo, credits and revision date)
  98.      displayed in it.  If you change the size of the window (using whatever
  99.      method your window manager provides), the image will be automatically
  100.      stretched to fit the window.
  101.  
  102.  
  103.      Section 2.1: Displaying Pixel Values
  104.  
  105.  
  106.      Clicking (and optionally dragging) the _L_e_f_t mouse button inside this
  107.      window will display pixel information in the following format:
  108.  
  109.           196, 137 = 191,121,209 (287 42 81 HSV)
  110.  
  111.      The first pair of numbers (196,137) are the x and y positions of the
  112.      cursor, in image coordinates.  These numbers remain the same regardless
  113.      of any image resizing, or cropping.  For example, if you click on the
  114.      eye of the fish on the right side of the default image, you'll get
  115.      (approximately) 251,129 regardless of the size of the displayed image.
  116.      This allows you to zoom in for precise measurements.
  117.  
  118.      The first triplet of numbers (191,121,209) are the RGB values of the
  119.      selected pixel.  The components will have integer values in the range
  120.      0-255.  The values displayed are prior to any HSV/RGB modification, but
  121.      after any colormap changes.  See "Section 5: The Color Editor" for
  122.      details.
  123.  
  124.      The second triplet of numbers (287 42 81) are the HSV values of the
  125.      selected pixel.  The first component will have integer values in the
  126.      range 0-359, and the second and third components will have integer
  127.  
  128.  
  129.    2                                                                Rev: 2.10
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.    Feb 26, 1992                                                         xv(l)
  137.  
  138.  
  139.      values in the range 0-100.  The values displayed are prior to any
  140.      HSV/RGB modification, but after any colormap changes.  See "Section 5:
  141.      The Color Editor" for details.  Also, see "Appendix D: RGB and HSV
  142.      Colorspaces" for more information about what these numbers mean.
  143.  
  144.      Note: If you actually want to measure some pixels, it will probably help
  145.      to crop to a small region of your image, and expand that region to the
  146.      point where you can see the individual pixels.
  147.  
  148.      This string is automatically copied to your X server's cut buffer when-
  149.      ever you measure pixel values.  This lets you easily feed this informa-
  150.      tion to another program, useful if you're doing manual feature extrac-
  151.      tion, or something.  Try it: measure a pixel's value, and then go click
  152.      your _M_i_d_d_l_e mouse button in an _x_t_e_r_m window.
  153.  
  154.  
  155.      Section 2.2: Cropping
  156.  
  157.  
  158.      Bring up the _x_v _c_o_n_t_r_o_l_s window by typing the '?' key or clicking the
  159.      _R_i_g_h_t mouse button inside the image window.
  160.  
  161.      Clicking and dragging the _M_i_d_d_l_e button of the mouse inside the image
  162.      window will allow you to draw a cropping rectangle on the image.  If
  163.      you're unhappy with the one you've drawn, simply click the _M_i_d_d_l_e button
  164.      and draw another.  If you'd like the rectangle to go away altogether,
  165.      click the _M_i_d_d_l_e button and release it without moving the mouse.
  166.  
  167.      You can determine how large the cropping rectangle is (in image coordi-
  168.      nates) by bringing up the _x_v _i_n_f_o window.  Do this by clicking the Info
  169.      button in the _x_v _c_o_n_t_r_o_l_s _w_i_n_d_o_w or by typing the 'i' key into any open
  170.      _x_v window.
  171.  
  172.      The _x_v _i_n_f_o _w_i_n_d_o_w will display, among other things, the current size
  173.      and position of the cropping rectangle in terms of image coordinates.
  174.      For example, if it says:
  175.  
  176.           114x77 rectangle starting at 119,58
  177.  
  178.      that would mean that the current cropping rectangle is 114 image pixels
  179.      wide, 77 image pixels high, and its top-left corner is located 119 image
  180.      pixels in from the left edge of the image, and 58 image pixels in from
  181.      the top edge.  These values will be updated as you drag the cropping
  182.      rectangle around.
  183.  
  184.      If you want to set the size or position of the cropping rectangle pre-
  185.      cisely, you can use the arrow keys on your keyboard.  First, make the _x_v
  186.      _i_n_f_o window visible as described above (if it's not already visible).
  187.      Second, use the mouse to draw a rough approximation of the cropping rec-
  188.      tangle that you want.  You can now use the arrow keys to move the crop-
  189.      ping rectangle around the image.  Once you've gotten the top and left
  190.      sides of the cropping rectangle precisely where you want them, you can
  191.      move the bottom-right corner of the cropping rectangle (only) by holding
  192.      the <shift> key down while using the arrow keys.  Pressing the up arrow
  193.  
  194.  
  195.    Rev: 2.10                                                                3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.    xv(l)                                                         Feb 26, 1992
  203.  
  204.  
  205.      will make the rectangle shorter, and pressing the down arrow will make
  206.      the rectangle taller.
  207.  
  208.      Once you have a cropping rectangle that you can live with, you can
  209.      proceed with the actual cropping operation.  Click the Crop button in
  210.      the _x_v _c_o_n_t_r_o_l_s window, or type the 'c' key in any open _x_v window.  The
  211.      image window will shrink to show only portions of the image that were
  212.      inside the cropping rectangle.
  213.  
  214.      Note: if you are running a window manager such as _m_w_m, which decorates
  215.      windows with a title bar, resizing regions, and such, it is quite possi-
  216.      ble that the aspect ratio of the cropped image will get screwed up.
  217.      This is because certain window managers enforce a minimum window size.
  218.      If you try to crop to a rectangle that is too small, the window manager
  219.      will create the smallest window it can, and the image will be stretched
  220.      to fit this window.  If this happens, you can press the Aspect button in
  221.      the _x_v _c_o_n_t_r_o_l_s window, or type the 'a' key in any open _x_v window.  This
  222.      will expand the image so that it has the correct aspect ratio again.
  223.  
  224.      You can crop a cropped image by repeating the same steps (drawing a new
  225.      cropping rectangle and issuing the Crop command), ad infinitum.
  226.  
  227.      You can return to the original, uncropped image by using the UnCrop com-
  228.      mand.  Simply click the UnCrop button or type the 'u' key in any open _x_v
  229.      window.  Note that using the UnCrop command will turn off image smooth-
  230.      ing (the Smooth) command), due to the potentially long time it can take
  231.      to generate a large, smoothed image.
  232.  
  233.      Note that if you try to make the cropping rectangle too small in either
  234.      width or height (under 5 screen pixels), it'll just turn itself off.  If
  235.      you want to crop a very small portion of an image, you'll probably have
  236.      to do it in two passes.  First, crop to a small (but large enough to
  237.      still be enabled) rectangle, expand that region, then crop again.
  238.  
  239.  
  240.      Section 2.3: Zooming
  241.  
  242.  
  243.      You can zoom in by a factor of two (or four, eight, etc.) on any rec-
  244.      tangular region of the image by holding down the <ctrl> key on your key-
  245.      board and clicking the _L_e_f_t mouse button in the image.  A rectangle will
  246.      flash, centered around the cursor position, and the region inside that
  247.      rectangle will be doubled in size.  The image window should remain the
  248.      same size, and in the same position.  You can repeat this operation to
  249.      zoom in by a factor of four, or eight, or whatever, as many times as you
  250.      wish.
  251.  
  252.      You can zoom out by a factor of two (if possible) by holding down the
  253.      <ctrl> key on your keyboard and clicking the _R_i_g_h_t mouse button inside
  254.      the image window.  You can not zoom out beyond the point where the
  255.      entire image fill the window.
  256.  
  257.  
  258.  
  259.  
  260.  
  261.    4                                                                Rev: 2.10
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.    Feb 26, 1992                                                         xv(l)
  269.  
  270.  
  271.    SECTION 3:     THE CONTROL WINDOW
  272.  
  273.      The _x_v _c_o_n_t_r_o_l_s window is the central point of control for the program,
  274.      hence the name.  It provides controls to resize the current image, flip
  275.      and rotate it, load and save different files, and bring up the other _x_v
  276.      windows.  It can be brought up by clicking the _R_i_g_h_t mouse button in the
  277.      image window, or by typing the '?' key inside any open _x_v window.  Doing
  278.      either of these things while the _x_v _c_o_n_t_r_o_l_s window is visible will hide
  279.      it.
  280.  
  281.      All of the following commands may be executed by either clicking the
  282.      appropriate command button, or typing the keyboard equivalent (where
  283.      given) into any open _x_v window.
  284.  
  285.  
  286.      Section 3.1: Resizing Commands
  287.  
  288.  
  289.      Note that none of the 'resizing' commands modify the image in any way.
  290.      They only affect how the image is displayed.  The image remains at its
  291.      original size.  This allows you to arbitrarily stretch and compact the
  292.      image without compounding error caused by earlier resizing.  In each
  293.      case, the displayed image is recomputed from the original internal
  294.      image.
  295.  
  296.  
  297.      Normal  (Keyboard equivalent 'n')
  298.           Attempts to return the image to its normal size, where one image
  299.           pixel maps to one screen pixel.  For example, if the image (or the
  300.           current cropped portion of the image) has a size of 320x200, this
  301.           command will attempt to make the image window be 320 screen pixels
  302.           wide by 200 screen pixels high.
  303.  
  304.           This command may fail in two cases.  If you're running a window
  305.           manager (such as _m_w_m) that enforces a minimum window size, and the
  306.           'normal' size is too small, the image may get distorted.  See the
  307.           note in "Section 2.2: Cropping" for more information.
  308.  
  309.           Also, if the image is larger than the size of your screen, it will
  310.           be 'halved' until it fits on the screen.  For example, if you try
  311.           to display a 1400x900 image on a 1280x1024 screen, the Normal com-
  312.           mand will display a 700x450 image.
  313.  
  314.  
  315.      Max Size  (Keyboard equivalent 'm')
  316.           This command will make the displayed image be the same size as the
  317.           screen.  If you are running a window manager that puts up a
  318.           titlebar, you'll find that the titlebar is now off the top of the
  319.           screen.  To get the titlebar back, simply shrink the image to any-
  320.           thing smaller than the size of the screen.  The window will be
  321.           moved so that the titlebar is once again visible.
  322.  
  323.  
  324.      Maxpect  (Keyboard equivalent 'M')
  325.  
  326.  
  327.    Rev: 2.10                                                                5
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.    xv(l)                                                         Feb 26, 1992
  335.  
  336.  
  337.           Makes the image as large as possible, while preserving the aspect
  338.           ratio.  This avoids the generally unwanted image distortion that
  339.           Max Size is capable of generating.  For example, if you have a
  340.           320x200 image, and an 1280x1024 screen, doing the Maxpect command
  341.           will result in an image that is 1280x800.  Max Size, on the other
  342.           hand, would've generated an image of size 1280x1024, which would be
  343.           appear 'stretched' vertically.
  344.  
  345.  
  346.      Dbl Size  (Keyboard equivalent '>')
  347.           Doubles the current size of the image, with the constraint that
  348.           neither axis is allowed to be larger than the screen.  For example,
  349.           given a 320x200 image and a 1280x1024 screen, the image can be dou-
  350.           bled once (to 640x400), a second time (to 1280x800), but a third
  351.           time would make the image 1280x1024.  You'll note that on the third
  352.           time, the width didn't change at all, since it was already at its
  353.           maximum value.  Also note that the height wasn't allowed to double
  354.           (from 800 to 1600), but was truncated at its maximum value (1024).
  355.  
  356.  
  357.      Half Size  (Keyboard equivalent '<')
  358.           Halves the current size of the image, with the constraint that nei-
  359.           ther axis is allowed to have a size less than 1 pixel.  Also, you
  360.           may run into 'minimum size' problems with your window manager.  See
  361.           the note in "Section 2.2: Cropping" for more information.
  362.  
  363.           Note that the window size is maintained as a pair of integers.  As
  364.           a result you may see some integer round-off problems.  For example,
  365.           if you halve a 265x185 image, you'll get a 132x92 image, which is
  366.           just fine.  However, if you Dbl Size this image, you'll get a
  367.           264x184 image, not the 265x185 image you might have expected.
  368.  
  369.  
  370.      +10%  (Keyboard equivalent '.')
  371.           Increases the current size of the image by 10%, subject to the con-
  372.           straint that the image cannot be made larger than the screen size
  373.           (in either axis).  For example, issuing this command on a 320x200
  374.           image will result in a 352x220 image.
  375.  
  376.  
  377.      -10%  (Keyboard equivalent ',')
  378.           Decreases the current size of the image by 10%.  Neither axis of
  379.           the image is allowed to shrink below 1 pixel.  Also, you run the
  380.           risk of running into 'minimum window size' problems with your win-
  381.           dow manager.
  382.  
  383.           It should be noted that the +10% and -10% commands have no concept
  384.           of an 'original size'.  They simply increase or decrease the
  385.           current image size by 10%.  As a result, they do not undo each
  386.           other.  For example, take a 320x200 image.  Do a +10% and the image
  387.           will be 352x220.  If you issue the -10% command now, the image will
  388.           be made (352 - 35.2)x(220 - 22), or 316x198.
  389.  
  390.  
  391.  
  392.  
  393.    6                                                                Rev: 2.10
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.    Feb 26, 1992                                                         xv(l)
  401.  
  402.  
  403.      4x3  (Keyboard equivalent '4')
  404.           Attempts to resize the image so that the ratio of width to height
  405.           is equal to 4 to 3.  (e.g., 320x240, 400x300, etc.)  This is useful
  406.           because many images were meant to fill the screen of whatever sys-
  407.           tem they were generated on, and nearly all video tubes have an
  408.           aspect ratio of 4:3.  This command will stretch the image so that
  409.           things will probably look right on your X display (nearly all of
  410.           which, thankfully, have square pixels).  This command is particu-
  411.           larly useful for images which have really bizarre sizes (such as
  412.           the 600x200 images presumably meant for CGA, and the 640x350 16-
  413.           color EGA images).
  414.  
  415.  
  416.      Aspect  (Keyboard equivalent 'a')
  417.           Applies the 'default aspect ratio' to the image.  This is done
  418.           automatically when the image is first loaded.  Normally, the
  419.           default aspect ratio is '1:1', but certain GIF files may have an
  420.           aspect ratio encoded in them.  You can also set the default aspect
  421.           ratio via a command-line argument or an X resource.  See 'Section
  422.           9: Modifying XV Behavior' for more info.  The idea behind this com-
  423.           mand is that you'd stretch the image manually (via your window
  424.           manager) to roughly the size you'd like, and then use the Aspect
  425.           command to fix up the proportions.
  426.  
  427.           Normally Aspect expands one axis of the image to correct the aspect
  428.           ratio.  If this would result in an image that is larger than the
  429.           screen, the Aspect command will instead shrink one of the axes to
  430.           correct the aspect ratio.
  431.  
  432.  
  433.      Section 3.2: Rotate/Flip Commands
  434.  
  435.  
  436.      Turn CW  (Keyboard equivalent 't')
  437.           Rotates the image 90 degrees clockwise.
  438.  
  439.  
  440.      Turn CCW  (Keyboard equivalent 'T')
  441.           Rotates the image 90 degrees counter-clockwise.
  442.  
  443.  
  444.      Flip H  (Keyboard equivalent 'h')
  445.           Flips the image horizontally (around the vertical center-line of
  446.           the image).
  447.  
  448.  
  449.      Flip V  (Keyboard equivalent 'v')
  450.           Flips the image vertically (around the horizontal center-line of
  451.           the image).
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.    Rev: 2.10                                                                7
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.    xv(l)                                                         Feb 26, 1992
  467.  
  468.  
  469.      Section 3.3: Smoothing Commands
  470.  
  471.  
  472.      Raw  (Keyboard equivalent 'r')
  473.           Returns the displayed image to its 'raw' state (where each pixel in
  474.           the displayed image is as close as possible to the corresponding
  475.           pixel in the internal image).  In short, it turns off any dithering
  476.           or smoothing.  When dithering or smoothing haven't been done, this
  477.           command is disabled.
  478.  
  479.  
  480.      Dither  (Keyboard equivalent 'd')
  481.           Regenerates the displayed image by dithering with the available
  482.           colors in an attempt to approximate the original image.  This is
  483.           only relevant if the color allocation code failed to get all the
  484.           colors it wanted.  If it did get all the desired colors, the Dither
  485.           command will just generate the same display image as the Raw com-
  486.           mand.  On the other hand, if you didn't get all the desired colors,
  487.           the Dither command will try to approximate the missing colors by
  488.           dithering with the colors that were obtained.  If you're running _x_v
  489.           on a 1-bit display the Dither command will be disabled, as the
  490.           image will always be dithered for display.
  491.  
  492.  
  493.      Smooth  (Keyboard equivalent 's')
  494.           Smooths out distortion caused by integer round-off when an image is
  495.           expanded or shrunk.  This is generally a desirable effect, however
  496.           it is fairly time-consuming on large images on most current works-
  497.           tations.  As such, by default, it is not done automatically.  See
  498.           "Section 9: Modifying XV Behavior" for more details.
  499.  
  500.  
  501.      Section 3.4: Cropping Commands
  502.  
  503.  
  504.      Crop  (Keyboard equivalent 'c')
  505.           Crops the image to the current cropping rectangle.  This command is
  506.           only available when a cropping rectangle has been drawn on the
  507.           image.  See "Section 2.2: Cropping" for further information.
  508.  
  509.  
  510.      UnCrop  (Keyboard equivalent 'u')
  511.           Returns the image to its normal, uncropped state.  This command is
  512.           only available after the image has been cropped.  See "Section 2.2:
  513.           Cropping" for further information.
  514.  
  515.  
  516.      AutoCrop  (Keyboard equivalent 'A')
  517.           Crops off any constant borders that exist in the image.  It will
  518.           crop to the smallest rectangle that encloses the 'interesting' sec-
  519.           tion of the image.  It may not always appear to work because of
  520.           minor invisible color changes in the image.  As such, it works best
  521.           on computer-generated images, and not as well on scanned images.
  522.  
  523.  
  524.  
  525.    8                                                                Rev: 2.10
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.    Feb 26, 1992                                                         xv(l)
  533.  
  534.  
  535.  
  536.      Section 3.5: The Display Modes Menu
  537.  
  538.  
  539.      In addition to displaying an image in a window, _x_v can also display
  540.      images on the root (background) window of your X display.  There are a
  541.      variety of ways that _x_v can display an image on the root window.  The
  542.      Display Modes popup menu lets you select where (and how) _x_v will display
  543.      the image.
  544.  
  545.      Click on the Display Modes button in the _x_v _c_o_n_t_r_o_l_s window, and hold
  546.      the mouse button down.  This will cause the Display Modes menu to pop
  547.      up.  The current display mode will be shown with a check mark next to
  548.      it.  To select a new mode, drag the mouse down to the desired mode, and
  549.      release the mouse button.
  550.  
  551.      It is not possible for _x_v to receive button presses or keyboard presses
  552.      in the root window.  As such, there are several functions that cannot be
  553.      used while in a 'root' mode, such as pixel tracking and image cropping.
  554.      If you want to do such things, you'll have to temporarily return to
  555.      'window' mode, and return to 'root' mode when you're finished.  Also,
  556.      when you are in a 'root' mode, you will not be able to get rid of the _x_v
  557.      _c_o_n_t_r_o_l_s window.  At best you can iconify it (using your window
  558.      manager).  (The reason for this is that if you ever got rid of it
  559.      there'd be no way to get it back.)
  560.  
  561.  
  562.      Window
  563.           Displays the image in a window.  If you were previously in a 'root'
  564.           mode, the root window will also be cleared.
  565.  
  566.  
  567.      Root: Tiled
  568.           The image is displayed in the root window.  One image is displayed
  569.           aligned with the top-left corner of the screen.  The image is then
  570.           duplicated towards the bottom and right edges of the screen, as
  571.           many times as necessary to fill the screen.
  572.  
  573.  
  574.      Root: Integer Tiled
  575.           Similar to Root: Tiled, except that the image is first shrunk so
  576.           that its width and height are integer divisors of the screen's
  577.           width and height.  This keeps the images along the bottom and right
  578.           edges of the screen from being Normal, Dbl Size, etc.) will lose
  579.           the 'integer'-ness of the image.
  580.  
  581.  
  582.      Root: Mirrored
  583.           Tiles the original image with versions that have been horizontally
  584.           flipped, vertically flipped, and both horizontally and vertically
  585.           flipped.  This gets rid of the sharp dividing lines where tiled
  586.           images meet.  The effect is quite interesting.
  587.  
  588.  
  589.  
  590.  
  591.    Rev: 2.10                                                                9
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.    xv(l)                                                         Feb 26, 1992
  599.  
  600.  
  601.      Root: Integer Mirrored
  602.           Like Root: Mirrored, but also does the integer-ization described
  603.           under the Root: Integer Tiled entry.
  604.  
  605.  
  606.      Root: Center Tiled
  607.           Like Root: Tiled, but it positions the images so that one of them
  608.           is centered on the screen, and the rest are tiled off in all direc-
  609.           tions.  Visually pleasing without the image size distortion associ-
  610.           ated with Root: Integer Tiled.
  611.  
  612.  
  613.      Root: Centered
  614.           Displays a single image centered in the root window, surrounded by
  615.           black.
  616.  
  617.  
  618.      Root: Centered, Warp
  619.           Displays a single image centered in the root window, surrounded by
  620.           a black and white 'warp' pattern, which produces some mildly visu-
  621.           ally pleasing Moire effects.
  622.  
  623.  
  624.      Root: Centered, Brick
  625.           Displays a single image centered in the root window, surrounded by
  626.           a black and white 'brick' pattern.
  627.  
  628.  
  629.      Note: The three 'centered' modes (Root: Centered, Root: Centered, Warp,
  630.      and Root: Centered, Brick, but not Root: Center Tiled) require the crea-
  631.      tion of a Pixmap the size of the screen.  This can be a fairly large
  632.      request for resources, and will fail on a color X terminal with insuffi-
  633.      cient memory.  They can also require the transmission of considerably
  634.      more data than the other 'root' modes.  If you're on a brain-damaged X
  635.      terminal hanging off a slow network, you should probably go somewhere
  636.      else.  Barring that, you should certainly avoid the 'centered' modes.
  637.  
  638.      Also note: If you quit _x_v while displaying an image on the root window,
  639.      the image will remain in the root window, and the colors used by the
  640.      image will remain allocated.  This is generally regarded as correct
  641.      behavior.  If you decide you want to get rid of the root image to free
  642.      up resources, or simply because you're sick of seeing it, the quickest
  643.      route is to use run 'xv -clear', which will clear the root window,
  644.      release any allocated colors, and exit.  Alternately, _x_s_e_t_r_o_o_t and any
  645.      other X program that puts things in the root window should be able to do
  646.      the trick as well.
  647.  
  648.  
  649.      Section 3.6: The 24-bit Conversion Menu
  650.  
  651.  
  652.      _x_v can currently only operate on 8-bit images.  Whenever you load a 24-
  653.      bit image (such as JPEG, TIFF, PPM, etc) it is immediately converted
  654.      into an 8-bit colormapped image using one of three algorithms.
  655.  
  656.  
  657.    10                                                               Rev: 2.10
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.    Feb 26, 1992                                                         xv(l)
  665.  
  666.  
  667.  
  668.      Fast Converts 24-bit images into 8-bit images by dithering with a fixed
  669.           6x6x6 RGB colormap.  It is the quickest of the three algorithms,
  670.           but also generally produces the worst images.  It can also be
  671.           selected via the '-quick24' command-line option or X resource.
  672.  
  673.  
  674.      Slow The default algorithm.  Takes about twice as long as the fast algo-
  675.           rithm. Uses the median-cut algorithm to pick a set of 256 colors,
  676.           and then dithers using these colors.  It can be selected via the
  677.           '-slow24' command-line option or X resource.
  678.  
  679.  
  680.      Best By far and away the slowest of the algorithms.  It can take up to
  681.           ten times as long as the 'slow' algorithm.  It uses a cleverer ver-
  682.           sion of the median-cut algorithm to pick a better set of colors
  683.           than the slow algorithm.  It does not dither.  This might look best
  684.           if you're going to be expanding the image by very much, as the
  685.           dithering in the other two algorithms becomes very noticable.  You
  686.           can also select this option via the '-best24' command-line option
  687.           or X resource.
  688.  
  689.  
  690.      Section 3.7: Working With Multiple Files
  691.  
  692.  
  693.      _x_v provides a a set of controls that let you conveniently operate on a
  694.      list of images.  To use the following commands, you'll have to start up
  695.      _x_v with a list of filenames.  For example, you could type 'xv *.gif'
  696.      (assuming, of course, that you have a bunch of files that end with the
  697.      suffix '.gif' in the current directory).
  698.  
  699.      The filenames are listed in a scrollable window.  The current selection
  700.      is shown in reverse video.  If there are more names than will fit in the
  701.      window, the scrollbar will be enabled.
  702.  
  703.  
  704.      Section 3.7.1: Operating a List Window
  705.  
  706.  
  707.      The scrollbar operates as follows:
  708.  
  709.      o+  clicking in the top or bottom arrow of the scrollbar scrolls the list
  710.         by one line in the appropriate direction.  It will continue to scroll
  711.         the list as long as you hold the mouse down.
  712.  
  713.      o+  The thumb (the small white rectangle in the middle of the scrollbar)
  714.         shows roughly where in the list you are.  You can change your posi-
  715.         tion in the list by clicking and dragging the thumb to another posi-
  716.         tion in the scrollbar.  The list will scroll around as you move the
  717.         thumb.
  718.  
  719.      o+  You can scroll the list up or down a page at a time by clicking in
  720.         the grey region between the thumb and the top or bottom arrows.
  721.  
  722.  
  723.    Rev: 2.10                                                               11
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.    xv(l)                                                         Feb 26, 1992
  731.  
  732.  
  733.      If you click on a name in the list, that name will become highlighted.
  734.      You can drag the highlight bar up and down, and the list will scroll
  735.      appropriately.
  736.  
  737.      It is also possible to control the list window from the keyboard.  In
  738.      all cases, you must make sure that the window sees the keypress.  Gen-
  739.      erally, this means you have to have the cursor inside the window, though
  740.      your window manager may also require you to click inside the window
  741.      first.
  742.  
  743.      o+  The up and down arrow keys move the highlight bar up and down.  If
  744.         the bar is at the top or bottom of the window, the list will scroll
  745.         one line.
  746.  
  747.      o+  The page up and page down keys scroll the list up or down a page at a
  748.         time.
  749.  
  750.      o+  Pressing the home key will jump to the beginning of the list.  Press-
  751.         ing the end key will jump to the bottom of the list.
  752.  
  753.  
  754.      Section 3.7.2: The File Commands
  755.  
  756.  
  757.      You can directly view any image in the list by double-clicking on its
  758.      filename.  If _x_v is unable to load the file (for any of a variety of
  759.      reasons), it'll display an error message and put up the default image,
  760.      the _x_v logo.
  761.  
  762.  
  763.      Next  (Keyboard equivalent <space>)
  764.           Attempts to load the next file in the list.  If it is unable to
  765.           load the next file, it will continue down the list until it suc-
  766.           cessfully loads a file.  If it gets to the bottom of the list
  767.           without successfully loading a file, it will put up the default
  768.           image.
  769.  
  770.  
  771.      Previous  (Keyboard equivalent <backspace>)
  772.           Attempts to load the previous file in the list.  If it is unable to
  773.           load the previous file, it will continue up the list until it suc-
  774.           cessfully loads a file.  If it gets to the top of the list without
  775.           successfully loading a file, it will put up the default image.
  776.  
  777.  
  778.      Delete  (Keyboard equivalent <ctrl-D>)
  779.           This command lets delete the currently selected file from the list
  780.           (and optionally delete the associated disk file).  Note that the
  781.           currently selected file is the one with the highlight bar on it.
  782.           While this is generally the same as the currently displayed image,
  783.           it doesn't have to be.
  784.  
  785.           The Delete command will pop-up a window asking you what you want to
  786.           delete.  Your choices are:
  787.  
  788.  
  789.    12                                                               Rev: 2.10
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.    Feb 26, 1992                                                         xv(l)
  797.  
  798.  
  799.  
  800.           o+  List Entry, which will remove the highlighted name from the
  801.              list.  (Keyboard equivalent: the enter key)
  802.  
  803.           o+  Disk File, which will remove the highlighted name from the list
  804.              and also delete the associated disk file.  This removes unwanted
  805.              images, just like manually typing 'rm <filename>' in another
  806.              window.  (Keyboard equivalent: <ctrl-D>)
  807.  
  808.           o+  Cancel, which lets you get out of the Delete command without
  809.              actually deleting anything.  (Keyboard equivalent: the esc key)
  810.  
  811.      Section 3.7.3: Image Reloading
  812.  
  813.      It is occasionally desirable to reload an image file because the con-
  814.      tents of the file have changed.  For example, you could be downloading a
  815.      file, and you might want to keep reloading the file to check on the pro-
  816.      gress of the download.  Or perhaps you have a program that generates
  817.      images, and you'd like to view these images without any manual interven-
  818.      tion.
  819.  
  820.      _X_V provides a way to reload an image via an external signal.  If you
  821.      send the xv process a SIGQUIT signal ('kill -QUIT _p_i_d', or currently
  822.      selected file.  (The one that is currently highlighted in the _x_v _c_o_n_-
  823.      _t_r_o_l_s window filename list.)  This behavior is exactly the same as hit-
  824.      ting '<return>' in the _x_v _c_o_n_t_r_o_l_s window.  If _x_v is currently in a
  825.      state where hitting '<return>' in the controls window won't load an
  826.      image (ie, some pop-up dialog box is grabbing all such events), then
  827.      sending this signal wonUt work either.
  828.  
  829.      An idea: You could write a 'clock' program that, once a minute, gen-
  830.      erates a really spiffy looking picture of the current time (with color
  831.      gradations, 3d extruded numbers, whatever), then sends _x_v the signal to
  832.      reload the generated image.
  833.  
  834.  
  835.      Section 3.8: The Grab Command
  836.  
  837.  
  838.      The Grab command works as follows:  click on the Grab button in the _x_v
  839.      _c_o_n_t_r_o_l_s window, or type a <ctrl-G> key in any active _x_v window (except
  840.      for the JPEG, PostScript, and TIFF 'save' dialog boxes).  The terminal
  841.      will beep once, and the cursor will change to a cross.  The screen will
  842.      remain frozen until you complete the Grab command.
  843.  
  844.      You can Grab an arbitrary region of the screen by clicking the _L_e_f_t
  845.      mouse button and dragging a rectangle in exactly the same way you draw a
  846.      cropping rectangle.  When you let go of the mouse button, the contents
  847.      of this rectangle will be read from the screen and loaded into _x_v.
  848.  
  849.      Alternately, you can grab the entire contents of a window (including its
  850.      frame) by clicking the _M_i_d_d_l_e mouse button anywhere inside the chosen
  851.      window.  If you click the _M_i_d_d_l_e mouse button somewhere on the root win-
  852.      dow, the entire screen will be loaded into _x_v.
  853.  
  854.  
  855.    Rev: 2.10                                                               13
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.    xv(l)                                                         Feb 26, 1992
  863.  
  864.  
  865.      Or, alternately, you can simply abort the Grab command by clicking the
  866.      _R_i_g_h_t mouse button anywhere on the screen.
  867.  
  868.      You can use the Grab command for a wide variety of purposes.  For exam-
  869.      ple, you can use it to print the contents of any window (or the whole
  870.      screen) by grabbing the appropriate image and then saving it as a
  871.      PostScript file.
  872.  
  873.      You can use the Grab command, in conjunction with the Zoom and UnZoom
  874.      commands, as an effective replacement for the _x_m_a_g program.
  875.  
  876.      You can also use the Grab command to pick 'just the right colors' for
  877.      any application.  Simply start the application in question, Grab the
  878.      window into _x_v, and use the colormap editor to twiddle the colors around
  879.      to your heart's content.
  880.  
  881.      Note:  The Grab command does not work on Macintoshes running _M_a_c_X in a
  882.      rootless mode, which isn't too surprising, if you think about it...
  883.  
  884.  
  885.      Section 3.9: Other Commands
  886.  
  887.  
  888.      Info  (Keyboard equivalent 'i')
  889.           Opens and closes the _x_v _i_n_f_o window.  See "Section 4: The Info Win-
  890.           dow" for more details.
  891.  
  892.  
  893.      ColEdit  (Keyboard equivalent 'e')
  894.           Opens and closes the _x_v _c_o_l_o_r _e_d_i_t_o_r window.  See "Section 5: The
  895.           Color Editor" for more details.
  896.  
  897.  
  898.      Load  (Keyboard equivalent <ctrl-L>)
  899.           Opens the _x_v _l_o_a_d window.  See "Section 6: The Load Window" for
  900.           more details.
  901.  
  902.  
  903.      Save  (Keyboard equivalent <ctrl-S>)
  904.           Opens the _x_v _s_a_v_e window.  See "Section 7: The Save Window" for
  905.           more details.
  906.  
  907.  
  908.      Quit  (Keyboard equivalent 'q')
  909.           Quits out of the program.
  910.  
  911.  
  912.    SECTION 4:     THE INFO WINDOW
  913.  
  914.  
  915.      Section 4.1: Overview
  916.  
  917.  
  918.      _x_v provides a window to display information about the current image,
  919.  
  920.  
  921.    14                                                               Rev: 2.10
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.    Feb 26, 1992                                                         xv(l)
  929.  
  930.  
  931.      color allocation, expansion, cropping, and any error messages.  This
  932.      window can be opened by issuing the Info command.  (Click on the Info
  933.      button in the _x_v _c_o_n_t_r_o_l_s window, or type 'i' in any open _x_v window.)
  934.      You can close the window by using the Info command while the window is
  935.      open.  You can also close the window by clicking anywhere inside it.
  936.  
  937.      The top portion of the window displays the program name, revision date,
  938.      and patchlevel.  It also shows the University of Pennsylvania shield,
  939.      the GRASP Lab logo, the copyright notice, and of course, the author's
  940.      name.
  941.  
  942.  
  943.      Section 4.2: The Fields
  944.  
  945.  
  946.      The "Filename" field displays the name of the currently loaded file.
  947.      The name is displayed without any leading pathname.  If there is no
  948.      currently loaded image (you're looking at the default image) this field
  949.      will display "<none>".
  950.  
  951.      The "Format" field displays information describing what image format the
  952.      file is stored in, and how large the file is (in bytes).
  953.  
  954.      The "Resolution" field shows the width and height (in image pixels) of
  955.      the loaded image.  Note that this does not necessarily have anything to
  956.      do with the size of the image currently displayed on your screen.  These
  957.      numbers do not change as you modify the display image.
  958.  
  959.      The "Cropping" field displays the current state of any cropping
  960.      activity.  If you are looking at the entire (uncropped) image, and there
  961.      is no cropping rectangle drawn, this field will show "<none>".  If you
  962.      draw a cropping rectangle, or if you are viewing cropped portion of
  963.      image, this field will display something like "247x128 rectangle start-
  964.      ing at 132,421".  See "Section 2.2: Cropping" for more details.
  965.  
  966.      The "Expansion" field gives you information about how the image is
  967.      displayed.  It will display something like "1.58 x 1.37 (505 x 273)".
  968.      This tells you that the current displayed image is 505 pixels wide and
  969.      273 pixels high, and that it is 1.58 times wider and 1.37 times higher
  970.      than the internal image (which, in this case, had a size of 320x200).
  971.  
  972.      The "Colors" field gives you detailed information on how well (or
  973.      poorly) color allocation went.  If everything went reasonably well it
  974.      will display something like:
  975.  
  976.           Got all 67 desired colors.  (66 unique)
  977.  
  978.      This means that 67 entries in the image's colormap were used in the
  979.      image, but that only 66 of these colors were different, as far as the X
  980.      server was concerned.
  981.  
  982.      See "Appendix E: Color Allocation" for a complete discussion of how
  983.      colors are allocated, and what the "Colors" field can tell you.
  984.  
  985.  
  986.  
  987.    Rev: 2.10                                                               15
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.    xv(l)                                                         Feb 26, 1992
  995.  
  996.  
  997.      Note that the fields are filled in as information becomes available.  As
  998.      such, they can be used as a rough 'progress indicator' when loading
  999.      images.  When you begin loading, all the fields are cleared.  Once the
  1000.      image has been successfully loaded, the top three fields (Filename, For-
  1001.      mat, Resolution) are filled in.  Once the colors have been allocated,
  1002.      and the display image generated, the bottom three fields are shown
  1003.      (Cropping, Expansion, and Colors).
  1004.  
  1005.  
  1006.      Section 4.3: Status Lines
  1007.  
  1008.  
  1009.      The bottom two lines in the info window display various error messages,
  1010.      warnings, and status information.  These two lines are also duplicated
  1011.      in the _x_v _c_o_n_t_r_o_l_s window.
  1012.  
  1013.      The upper line is the more commonly used.  It normally displays a one-
  1014.      line summary of the current image and color allocation success.  If an
  1015.      error occurs, it will be displayed on this line as well.
  1016.  
  1017.      The lower line is used to display warning messages.
  1018.  
  1019.  
  1020.    SECTION 5:     THE COLOR EDITOR
  1021.  
  1022.  
  1023.      Section 5.1: Overview
  1024.  
  1025.  
  1026.      The _x_v _c_o_l_o_r _e_d_i_t_o_r provides a powerful system for manipulating color
  1027.      images.  Since there are many different reasons why a person would want
  1028.      to modify an image's colors, and many different types of images that may
  1029.      need modification, there is no one color manipulation tool that would be
  1030.      'best' for all purposes.  Because of this problem, _x_v gives the user
  1031.      three different color tools, all of which can be used simultaneously.
  1032.  
  1033.      o+  Colormap Editing: This tool lets you arbitrarily modify individual
  1034.         colormap entries.  Useful for modifying the color of captions or
  1035.         other things that have been added to images.  Also works well on
  1036.         images that have a small number of colors, such as images generated
  1037.         by 'drawing' or CAD programs.  It's also an easy way to spiff up bor-
  1038.         ing 1-bit black and white images.
  1039.  
  1040.      o+  HSV Modification: This tool lets you alter the image globally in the
  1041.         HSV colorspace.  (See "Appendix D: RGB and HSV Colorspaces" for more
  1042.         info.)  Here are examples of the sort of things you can do with this
  1043.         tool:
  1044.  
  1045.         o+  turn all the blues in an image into reds
  1046.  
  1047.         o+  change the tint of an image
  1048.  
  1049.         o+  change a greyscale image into a mauve-scale image
  1050.  
  1051.  
  1052.  
  1053.    16                                                               Rev: 2.10
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.    Feb 26, 1992                                                         xv(l)
  1061.  
  1062.  
  1063.         o+  increase or decrease the amount of color saturation in an image
  1064.  
  1065.         o+  change the overall brightness of an image
  1066.  
  1067.         o+  change the overall contrast of an image
  1068.  
  1069.      o+  RGB Modification: This tool lets you route the red, green, and blue
  1070.         color components of an image through independent mapping functions.
  1071.         The functions can either be the standard gamma function, or any arbi-
  1072.         trary function that can be drawn with straight line segments or a
  1073.         cubic spline.  See "Section 5.3.4: The Intensity Graph" for more info
  1074.         about graph functions.
  1075.  
  1076.      The major use of the RGB Modification tool is to correct for the differ-
  1077.      ing color response curves of various color monitors, printers, and
  1078.      scanners.  This is the tool to use when "the image is too red", for
  1079.      instance.
  1080.  
  1081.      These three tools are tied together in a fixed order.  The Colormap
  1082.      Editing tool operates on the original colors in the image.  The output
  1083.      of this tool is piped into the HSV Modification tool.  Its output is
  1084.      piped into the RGB Modification tool.  The output from the RGB Modifica-
  1085.      tion tool is what actually gets displayed.
  1086.  
  1087.      In addition there is a collection of buttons that control the _x_v _c_o_l_o_r
  1088.      _e_d_i_t_o_r as a whole (more or less).
  1089.  
  1090.      Don't Panic!  It's not as complicated as it looks.
  1091.  
  1092.  
  1093.      Section 5.2: The Colormap Editing Tool
  1094.  
  1095.  
  1096.      The top portion of this window shows the colormap of the current image.
  1097.      There are 16 cells across, and up to 16 rows down, for a maximum of 256
  1098.      color cells.  Only cells actually used somewhere in the image are shown
  1099.      in this array.
  1100.  
  1101.      The currently selected color cell is shown with a thick border.  You can
  1102.      change the selection by clicking anywhere in the array.  If you drag the
  1103.      mouse through this area, you'll see the dials at the bottom change to
  1104.      track the current pixel values.
  1105.  
  1106.      You can also select a color cell by clicking anywhere in the image win-
  1107.      dow.  Whichever pixel value you were on when you let go of the mouse
  1108.      will become the new selected color cell.
  1109.  
  1110.      You can define a smoothly gradated range of colors by _L_e_f_t clicking on
  1111.      the color cell that marks the 'start' of the range, and _M_i_d_d_l_e clicking
  1112.      on the color cell that marks the 'end' of the range.  Intervening color
  1113.      cells will be interpolated between the colors of the
  1114.  
  1115.      As an example:
  1116.  
  1117.  
  1118.  
  1119.    Rev: 2.10                                                               17
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.    xv(l)                                                         Feb 26, 1992
  1127.  
  1128.  
  1129.      o+  View the 'default' image by running _x_v without specifying any
  1130.         filenames.
  1131.  
  1132.      o+  Open the _x_v _c_o_l_o_r _e_d_i_t_o_r window, and _L_e_f_t click on the first color
  1133.         cell.
  1134.  
  1135.      o+  Turn this color cell _r_e_d by setting the RGB dials to 255,0,0.
  1136.  
  1137.      o+  _L_e_f_t click on the 64th color cell (the rightmost color cell in the
  1138.         last complete row).
  1139.  
  1140.      o+  Turn this color cell _y_e_l_l_o_w by setting the RGB dials to 255,255,0.
  1141.  
  1142.      o+  _M_i_d_d_l_e click on the first color cell.  A smooth series of _y_e_l_l_o_w_i_s_h-
  1143.         _r_e_d_s will be generated from the 64th color cell to the first color
  1144.         cell.  Note that the 'direction' doesn't matter.
  1145.  
  1146.      Since certain images will have many colors that are the same, or nearly
  1147.      the same, it is sometimes convenient to group color cells together.
  1148.      Grouped color cells all take on the same color, and changing any one of
  1149.      them affects all of the other colors in the group.
  1150.  
  1151.      To group color cells together, do the following:
  1152.  
  1153.      o+  Hold down the <shift> key.
  1154.  
  1155.      o+  Left click on one color cell that you would like to be in the group
  1156.  
  1157.      o+  Right click on other color cells that you wish to be in this group.
  1158.         (Right clicking on cells that are already selected will de-select
  1159.         them.)
  1160.  
  1161.      o+  Release the <shift> key when you're done.
  1162.  
  1163.      You can create as many groups as you like.
  1164.  
  1165.      You can use this grouping/ungrouping technique to copy colors from one
  1166.      color cell to another.  Left click on the source color cell, Right click
  1167.      on the destination color cell, and Right click on the destination color
  1168.      cell again (to ungroup it).
  1169.  
  1170.  
  1171.      Section 5.2.1: Using the Dial Controls
  1172.  
  1173.  
  1174.      At the bottom the Colormap Editing tool are three dials that let you set
  1175.      the color of the current color cell (or group of cells).  By default,
  1176.      the dials control the Red, Green, and Blue components of the RGB
  1177.      colorspace, but they can also control the Hue, Saturation, and Value
  1178.      components of the HSV colorspace.  (The RGB/HSV button controls this.)
  1179.  
  1180.      Regardless of what they control, all dials in _x_v work the same way.
  1181.      Clicking on the single arrows increase/decrease the value by 1.  Click-
  1182.      ing on the double arrows increase/decrease the value by a larger amount
  1183.  
  1184.  
  1185.    18                                                               Rev: 2.10
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.    Feb 26, 1992                                                         xv(l)
  1193.  
  1194.  
  1195.      (16 in this case).  If you click on one of the arrows, and hold the
  1196.      mouse button down, the increase/decrease will repeat until you release
  1197.      the mouse button.
  1198.  
  1199.      You can also click in the general area of the pointer and simply drag it
  1200.      to the position you want.  The further your mouse cursor is from the
  1201.      center of the dial, the more precise the control will be.  While drag-
  1202.      ging, you do not have to keep the cursor inside the dial window.
  1203.  
  1204.  
  1205.      Section 5.2.2: Colormap Editing Commands
  1206.  
  1207.  
  1208.  
  1209.      ColUndo
  1210.           Undoes the last change made to the colormap that resulted in a
  1211.           color cell changing value.  This includes grouping and ungrouping
  1212.           color cells, and changing any of the dials.
  1213.  
  1214.  
  1215.      Revert
  1216.           Undoes all color changes.  Returns the colormap to its original
  1217.           state.  Destroys any groups that you may have created.
  1218.  
  1219.  
  1220.      RGB/HSV
  1221.           Toggles the Colormap Editing dials between editing colors in terms
  1222.           of Red, Green, and Blue, and editing colors in terms of Hue,
  1223.           Saturation, and Value.
  1224.  
  1225.  
  1226.      Grey Turns color images into greyscale images by changing the colormap.
  1227.           This replaces each color cell with a greyscale representation of
  1228.           itself.  Use the Revert command to restore the colors.
  1229.  
  1230.  
  1231.      RevVid
  1232.           This command behaves differently, depending on the setting of the
  1233.           RGB/HSV mode.  (You can tell which mode you're in by the titles on
  1234.           the dials.)
  1235.  
  1236.           In RGB mode, each color component is separately 'inverted'.  For
  1237.           example, Yellow (which is composed of full red, full green, and no
  1238.           blue) would turn to Blue (no red, no green, full blue).
  1239.  
  1240.           In HSV mode, only the Value (intensity) component is 'inverted'.
  1241.           The Hue and Saturation components remain the same.  In this mode,
  1242.           bright colors turn to dark versions of the same color.  For exam-
  1243.           ple, a Yellow would turn Brown.
  1244.  
  1245.  
  1246.      Random
  1247.           Generates a random colormap.  This is of questionable usefulness,
  1248.           but it will occasionally come up with pleasing color combinations
  1249.  
  1250.  
  1251.    Rev: 2.10                                                               19
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.    xv(l)                                                         Feb 26, 1992
  1259.  
  1260.  
  1261.           that you never would've come up with yourself.  So it stays in.  It
  1262.           works best on images with a small number of colors.  Note that it
  1263.           respects cell groupings, so if your image has a lot of colors, you
  1264.           can create a few large groups and then use the Random command.
  1265.  
  1266.  
  1267.      Note: It is HIGHLY RECOMMENDED that if you're using the Colormap Editing
  1268.      tool, you do NOT use the HSV Modification tool or the RGB Modification
  1269.      tool as well.  If you do, the results can be quite confusing.  For exam-
  1270.      ple, you might edit a color cell, and set its color values to produce a
  1271.      purple.  However, because of HSV/RGB Modification further down the line,
  1272.      the actual color displayed on the image (and in the color cell) is yel-
  1273.      low.  Very confusing, indeed.
  1274.  
  1275.  
  1276.      Section 5.3: The HSV Modification Tool
  1277.  
  1278.  
  1279.      There are four separate controls in the HSV Modification tool.  At the
  1280.      top of the window are a pair of circular controls that handle hue remap-
  1281.      ping.  Lower down is a circular control that maps 'white' (and greys) to
  1282.      a specified color.  There is a dial control that lets you
  1283.      saturate/desaturate the colors of the current information.  Finally, at
  1284.      the bottom there is a graph window that lets you modify intensity values
  1285.      via an arbitrary remapping function.
  1286.  
  1287.  
  1288.      Section 5.3.1: Hue Remapping Controls
  1289.  
  1290.  
  1291.      These two dials are used to define a source and a destination range of
  1292.      hue values.  Every hue in the source range (defined in the From dial)
  1293.      gets mapped to the value of the corresponding point in the destination
  1294.      range (defined in the To dial).
  1295.  
  1296.      Each dial has a pair of radial lines with handles at their ends.
  1297.      Between the two lines an arc is drawn with an arrow at one end.  The
  1298.      wedge drawn by these lines and the arc defines a range of values (in
  1299.      degrees).  The direction of the arc (clockwise, or counter-clockwise)
  1300.      determines the direction of this range of values (increasing or decreas-
  1301.      ing).
  1302.  
  1303.      Distributed around the dial are tick marks and the letters 'R', 'Y',
  1304.      'G', 'C', 'B', and 'M'.  These letters stand for the colors Red, Yellow,
  1305.      Green, Cyan, Blue, and Magenta, and they show where these colors appear
  1306.      on the circle.
  1307.  
  1308.      The range is shown numerically below the control.  By default the range
  1309.      is '330, 30 CW'.  This means that a range of values [330, 331, 332, ...
  1310.      359, 0, 1, ... 28, 29, 30] has been defined.  Note that (being a circle)
  1311.      it wraps back to 0 after 359.
  1312.  
  1313.      The range can be changed in many different ways.  You can click on the
  1314.      'handles' at the end of the radial lines and move them around.  If you
  1315.  
  1316.  
  1317.    20                                                               Rev: 2.10
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.    Feb 26, 1992                                                         xv(l)
  1325.  
  1326.  
  1327.      click inside the dial, but not on one of the handles, you'll be able to
  1328.      drag the range around as a single object.  There are also 5 buttons
  1329.      below the dial that let you rotate the range, flip the direction of the
  1330.      range, and increase/decrease the size of the range while keeping it cen-
  1331.      tered around the same value.
  1332.  
  1333.      In its default state, the To dial is set to the same range as the From
  1334.      dial.  When the two dials are set to the same range, they are effec-
  1335.      tively 'turned off', and ignored.
  1336.  
  1337.      An example of hue remapping:
  1338.  
  1339.      o+  As a simple example of the sort of things you can do with the hue
  1340.         remapping control, we'll change the background color of the default
  1341.         (_x_v logo) image without changing any other colors in the image.
  1342.         Since the background is composed of a gradient of 64 colors, you
  1343.         would not want to do this with the Colormap Editing tool.  It would
  1344.         take forever.
  1345.  
  1346.      o+  First, get the default image up on the screen by running 'xv' without
  1347.         giving any filenames.  Open up the _x_v _c_o_l_o_r _e_d_i_t_o_r window via the
  1348.         ColEdit command.
  1349.  
  1350.      o+  Next, click the mouse in the image window and drag it around.  You'll
  1351.         see that all the background pixels have the same Hue component value
  1352.         (240).
  1353.  
  1354.      o+  To remap this hue, simply adjust the From dial so that its range
  1355.         includes this Hue value.  The background should change from 'blue' to
  1356.         a reddish color, assuming the To dial is still set to its default
  1357.         range (centered around 'R').  If more than the background changed
  1358.         color, you can shrink the From range so that it covers fewer colors.
  1359.         In fact, it's possible to shrink the range to the point where it only
  1360.         covers only a single value.
  1361.  
  1362.      Note that the values printed when you are tracking pixel values in the
  1363.      image are the values before the HSV Modification tool is applied.  For
  1364.      example, the background of the default image will still claim to be
  1365.      blue, regardless of what color you may have changed it to.  This is so
  1366.      that you know what Hue value you will need to remap if you want to
  1367.      change its color again.
  1368.  
  1369.      If you press the Reset button that is located near the hue remapping
  1370.      controls, it will effectively disable the hue remapping by setting the
  1371.      To range equal to the From range.
  1372.  
  1373.      Below the hue remapping controls are a group of 'radio buttons'.  You
  1374.      can have up to six different hue remappings happening simultaneously.
  1375.      Higher numbered mappings take precedence over lower number mappings.
  1376.  
  1377.      An example of multiple hue remappings:
  1378.  
  1379.      o+  Draw a From range that is a complete circle.  The easiest way to do
  1380.         this is to draw a range that is nearly a full circle, then click and
  1381.  
  1382.  
  1383.    Rev: 2.10                                                               21
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.    xv(l)                                                         Feb 26, 1992
  1391.  
  1392.  
  1393.         hold down the 'increase range' button located below the From range
  1394.         dial until the range stops getting bigger.
  1395.  
  1396.      o+  Copy this range to the To range by pressing the Reset button.
  1397.  
  1398.      o+  Rotate the To range slightly, by either clicking and dragging any-
  1399.         where in the To range dial, or by using the 'rotate clockwise' and
  1400.         'rotate counter-clockwise' buttons located below the To range.
  1401.  
  1402.      o+  You've just built yourself what is effectively a tint control.
  1403.  
  1404.      o+  Now, suppose, you'd like to adjust the background color of your
  1405.         (tint-modified) image, without affecting anything else.  Clicking on
  1406.         the background in the image window reveals that the background still
  1407.         has an (original) hue of 240.  To modify this hue without affecting
  1408.         anything else, we'll need a second hue remapping.
  1409.  
  1410.      o+  Click on the 2 radio button.  The dials will change to some other
  1411.         default setting.  As before, set the From range to encompass the
  1412.         value 240, preferably as 'tightly' as possible, and set the To range
  1413.         to produce the desired background color.
  1414.  
  1415.      Note that the six hue remappings are not 'cascaded'.  The output of one
  1416.      remapping is not fed as input into any of the other hue remappings.  The
  1417.      hue remappings always operate on the hue values in the original image.
  1418.      In this example, if remapping #1 adds 32 to all hue values, thereby map-
  1419.      ping the blue background (value 240) into a purple-blue (value 272),
  1420.      remapping #2 still sees the background at 240, and can remap it to any-
  1421.      thing it likes.  Similarly, in the same example, if remapping #1 has
  1422.      mapped a green-blue color (value 208) into blue (value 240), remapping
  1423.      #2 will not map this into another color.  As far as remapping #2 is con-
  1424.      cerned, that green-blue is still green-blue.
  1425.  
  1426.      If it seems complicated, I'm sorry.  It is.
  1427.  
  1428.  
  1429.      Section 5.3.2: The White Remapping Control
  1430.  
  1431.  
  1432.      In the HSV colorspace, 'white' (including black, and all the greys in
  1433.      between) has no Hue or Saturation components.  As such, it is not possi-
  1434.      ble to use the hue remapping controls to change the color of white pix-
  1435.      els in the image, since they have no 'color' to change.
  1436.  
  1437.      The white remapping control provides a way to add Hue and Saturation
  1438.      components to all the whites in the image.  It consists of a movable
  1439.      point in a color dial.  The angle of the dot from the center of the dial
  1440.      determines the Hue component.  The distance of the dot from the center
  1441.      of the dial determines the Saturation component.  The further the dot is
  1442.      from the center of the dial, the more saturated the color will be.
  1443.  
  1444.      You can control the white remapping control in several ways.  You can
  1445.      click on the handle and drag it around with the mouse.  There are also
  1446.      four buttons provided under the dial.  One pair allows you to rotate the
  1447.  
  1448.  
  1449.    22                                                               Rev: 2.10
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.    Feb 26, 1992                                                         xv(l)
  1457.  
  1458.  
  1459.      handle clockwise and counter-clockwise without changing its distance
  1460.      from the center.  The other pair of buttons lets you change the distance
  1461.      between the handle and the center without changing the angle.
  1462.  
  1463.      The current Hue and Saturation values provided by the control is
  1464.      displayed below the dial.  The first number is the Hue component, in
  1465.      degrees, and the second is the Saturation component, as a percentage.
  1466.  
  1467.      There is also a checkbox that will let you turn off the white remapping
  1468.      control.  This lets you quickly compare your modified 'white' with the
  1469.      original white.  You can also effectively disable the white remapping
  1470.      control by putting the handle back in the center of the control.  The
  1471.      easiest way to do this is to click and hold the 'move towards center'
  1472.      button until the saturation gets down to 0%.
  1473.  
  1474.      Example:
  1475.  
  1476.      o+  Press the Grey control in the Colormap Editing tool.  This turns all
  1477.         the colors in the image into shades of grey.
  1478.  
  1479.      o+  Drag the handle in the white remapping control halfway down towards
  1480.         the 'R' mark.  The Hue and Saturation values should be roughly 0-
  1481.         degrees and 50%.  The image should now be displayed in shades of
  1482.         pink.
  1483.  
  1484.  
  1485.      Section 5.3.3: The Saturation Control
  1486.  
  1487.  
  1488.      The saturation control lets you globally increase or decrease the color
  1489.      saturation of the image.  In effect, it is much like the 'color' control
  1490.      on most color televisions.
  1491.  
  1492.      The saturation control is a dial that operates exactly like the dials
  1493.      described in "Section 5.2.1 Using the Dial Controls".  In short, you can
  1494.      click and hold down any of the four buttons in the bottom of the control
  1495.      to increase or decrease the control's value.  You can also click on the
  1496.      dial itself and move the pointer around directly.
  1497.  
  1498.      The saturation control has values that range from '-100%' to '+100%'.
  1499.      At its default setting of '0%', the saturation control has no effect on
  1500.      the image.  As the values increase, the colors become more saturated, up
  1501.      to '+100%' where every color is fully saturated.  Likewise, as values
  1502.      decrease, the colors become desaturated.  At '-100%', every color will
  1503.      become a completely desaturated (i.e., a shade of grey).  Note that this
  1504.      control is applied after the the White Remapping control, so if you
  1505.      'greyify' the image by completely desaturating it, you will not be able
  1506.      to color it using the White Remapping control.
  1507.  
  1508.      Unless you're trying for some special effects, the useful range of this
  1509.      control is probably '+/-20%'.  Also note that the control will have no
  1510.      effect on shades of grey, as they have no color to saturate.
  1511.  
  1512.  
  1513.  
  1514.  
  1515.    Rev: 2.10                                                               23
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.    xv(l)                                                         Feb 26, 1992
  1523.  
  1524.  
  1525.      Section 5.3.4: The Intensity Graph
  1526.  
  1527.  
  1528.      The intensity graph allows you to change the brightness of the image,
  1529.      change the contrast of the image, and get some unique effects.
  1530.  
  1531.      The intensity graph is a function that lets you remap intensity values
  1532.      (the Value component in HSV Colorspace) into other intensity values.
  1533.      The input and output values of this function both range from 0 to 255.
  1534.      The input values range along the x axis of this graph (the horizontal).
  1535.      For every input value (point along the x axis) there is a unique output
  1536.      value determined by the height of the graph at that point.  In the
  1537.      graph's default state, the function is a straight line from bottom-left
  1538.      to top-right.  In this case, each input value produces an equivalent
  1539.      output value, and the graph has no effect.
  1540.  
  1541.      There are a number of 'handles' along the graph.  These provide your
  1542.      major means of interacting with the graph.  You can move them around
  1543.      arbitrarily, subject to these two constraints: the handles at the far
  1544.      left and far right of the graph can only be moved vertically, and han-
  1545.      dles must remain between their neighboring handles for the graph to
  1546.      remain a proper function.
  1547.  
  1548.      The handles are normally connected by a spline curve.  To see this, move
  1549.      one of the handles by clicking and dragging it.  (Note that the _x,_y
  1550.      position of the current handle is displayed while the mouse button is
  1551.      held down.)  The function will remain a smoothly curved line that passes
  1552.      through all the handles.  You can change this behavior by putting the
  1553.      function into 'lines' mode.  Press the 'lines' button (the second button
  1554.      down from the top).  The function will change to a series of line seg-
  1555.      ments that connect the handles.  Press the 'spline' button (the top but-
  1556.      ton) to go back to 'spline' mode.
  1557.  
  1558.      The next two buttons let you add or delete handles.  The 'add handle'
  1559.      button will insert a handle into the largest 'gap' in the function.  The
  1560.      'delete handle' button will remove a handle from the smallest 'gap' in
  1561.      the function.  You can have as little as 2 handles, or as many as 16.
  1562.      Note that as the number of handles gets large, the spline will start
  1563.      getting out of control.  You may wish to switch to 'lines' mode in this
  1564.      case.
  1565.  
  1566.      The 'Reset' button puts everything back on a straight line connecting
  1567.      bottom-left to top-right (a 1:1 function).  It does not change the
  1568.      number of handles, nor does it change the x-positions of the handles.
  1569.  
  1570.      The 'Gam' button lets you set the function curve by entering a single
  1571.      number.  The function is set equal to the gamma function:
  1572.  
  1573.           Y = 255 * (I/255) ^ (1/g)
  1574.  
  1575.      where I is the input value (0-255), g is the gamma value, and Y is the
  1576.      computed result.
  1577.  
  1578.      Gamma values (for our purposes) can range between 0 and 10000, non-
  1579.  
  1580.  
  1581.    24                                                               Rev: 2.10
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.    Feb 26, 1992                                                         xv(l)
  1589.  
  1590.  
  1591.      inclusive.
  1592.  
  1593.      o+  A gamma value of '1.00' results in the normal 1:1 straight line.
  1594.  
  1595.      o+  Gamma values of less than 1.00 but greater than 0.00 result in
  1596.         'exponential' curves, which will dim the image.
  1597.  
  1598.      o+  Gamma values greater than 1.00 result in 'logarithmic' curves, which
  1599.         will brighten the image.  Try it and see.
  1600.  
  1601.      There is a shortcut for the 'Gam' button.  Type 'g' while the mouse is
  1602.      inside the graph window.
  1603.  
  1604.      Also, touching any of the handles after a 'Gam' command will put the
  1605.      graph back into its 'normal' mode.  (Either 'spline' or 'lines' depend-
  1606.      ing on which of the top two buttons is turned on.)
  1607.  
  1608.      Generally, whenever you move a graph handle and let go of it, the image
  1609.      will be redrawn to show you the effects of what you've done.  This can
  1610.      be time-consuming if you intend to move many points around.  You can
  1611.      temporarily prevent the redisplay of the image by holding down a <shift>
  1612.      key.  Continue to hold the <shift> key down while you move the handles
  1613.      to the new position.  Release the <shift> key when you're done, and the
  1614.      image will be redisplayed.
  1615.  
  1616.  
  1617.      Section 5.4: The RGB Modification Tool
  1618.  
  1619.  
  1620.      The RGB Modification tool is a collection of three graph windows, each
  1621.      of which operate on one of the components of the RGB colorspace.  This
  1622.      tool lets you perform global color-correction on the image by boosting
  1623.      or cutting the values of one or more of the RGB color components.  You
  1624.      can use this to correct for color screens that are 'too blue', or for
  1625.      color printers that produce 'brownish' output, or whatever.
  1626.  
  1627.      The graphs work exactly as explained in "Section 5.3.4:  The Intensity
  1628.      Graph".
  1629.  
  1630.      Neat Trick: In addition to color-correction, you can use the RGB modifi-
  1631.      cation tool to add color to images that didn't have color to begin with.
  1632.      For instance, you can 'pseudo-color' a greyscale image.
  1633.  
  1634.      An example of pseudo-coloring:
  1635.  
  1636.      o+  Adjust the Red graph so that there is a strong red presence on the
  1637.         right side of the graph, and none on the left, or in the middle.
  1638.  
  1639.      o+  Adjust the Green graph so that there is a strong green presence in
  1640.         the middle of the graph, and none on the left or right.
  1641.  
  1642.      o+  Adjust the Blue graph so that there is a strong blue presence on the
  1643.         left side of the graph, and none on the left, or in the middle.
  1644.  
  1645.  
  1646.  
  1647.    Rev: 2.10                                                               25
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.    xv(l)                                                         Feb 26, 1992
  1655.  
  1656.  
  1657.      You now have a transformation that will take greyscale images and
  1658.      display them in pseudo-color, using a 'temperature' color scheme.
  1659.      Neato!
  1660.  
  1661.  
  1662.      Section 5.5: The Color Editor Controls
  1663.  
  1664.  
  1665.      These buttons provide general control over the whole _x_v _c_o_l_o_r _e_d_i_t_o_r
  1666.      window.  You can display the image with or without color modification,
  1667.      save and recall presets, and undo/redo changes.  Also, convenience con-
  1668.      trols are given for performing some of the most common operations on the
  1669.      Intensity graph.
  1670.  
  1671.  
  1672.      Apply  (Keyboard equivalent 'p')
  1673.           Displays the image using the current HSV and RGB Modifications.
  1674.           Also turns the 'Display with HSV/RGB mods' checkbox on.  (See
  1675.           below.)
  1676.  
  1677.           This is only useful when the 'Auto-apply HSV/RGB mods' checkbox is
  1678.           off.
  1679.  
  1680.  
  1681.      NoMod
  1682.           Displays the image without any HSV or RGB Modifications.  Also
  1683.           turns the 'Display with HSV/RGB mods' checkbox off.
  1684.  
  1685.  
  1686.      Reset  (Keyboard equivalent 'R')
  1687.           Resets all HSV and RGB controls to their default settings.  Doesn't
  1688.           affect the Colormap Editing tool.
  1689.  
  1690.  
  1691.      Undo Undoes the last change to the HSV or RGB controls.
  1692.  
  1693.           It may be helpful to think of _x_v as maintaining a series of 32
  1694.           'snapshots' of the HSV and RGB controls.  You are normally looking
  1695.           at the last frame in this series.  The Undo control moves you back-
  1696.           wards in the series.
  1697.  
  1698.  
  1699.      Redo Only available after you've hit Undo.  Moves you forward in the
  1700.           'snapshot' series described above.  Note that if you have hit Undo
  1701.           a few times (i.e., you're now looking at some frame in the middle
  1702.           of the series), and you change an HSV or RGB control, all subse-
  1703.           quent frames in the series are thrown away, and the current state
  1704.           becomes that last frame in the series.
  1705.  
  1706.  
  1707.      1,2,3,4
  1708.           Pressing any of these buttons recalls a preset (a complete set of
  1709.           values for the HSV and RGB controls).
  1710.  
  1711.  
  1712.  
  1713.    26                                                               Rev: 2.10
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.    Feb 26, 1992                                                         xv(l)
  1721.  
  1722.  
  1723.  
  1724.      Set  Used in conjunction with the Reset,1,2,3,4 buttons to store the
  1725.           current settings of the HSV and RGB controls into a preset.  To do
  1726.           so, press the Set button, and then press one of the Reset,1,2,3,4
  1727.           buttons.  The current HSV and RGB control settings will be stored
  1728.           in that preset, as long as _x_v continues running.  The values will
  1729.           be lost when the program exits.  It is also possible to save these
  1730.           values permanently.  See the CutRes button (below) and "Section 9:
  1731.           Modifying XV Behavior" for more details.
  1732.  
  1733.  
  1734.      CutRes
  1735.           Copies the current settings of the HSV and RGB controls, as text,
  1736.           into the X server's cut buffer.  You can then use a text editor to
  1737.           paste these values into your '.Xdefaults' (or '.Xresources') file.
  1738.           This lets you save the current settings 'permanently'.  See "Sec-
  1739.           tion 9: Modifying XV Behavior" for more details.
  1740.  
  1741.  
  1742.      Close
  1743.           This button closes the _x_v _c_o_l_o_r _e_d_i_t_o_r window.
  1744.  
  1745.  
  1746.      Brite
  1747.           Brightens the image by moving all the handles in the Intensity
  1748.           graph up by a constant amount.
  1749.  
  1750.  
  1751.      Dim  Darkens the image by moving all the handles in the Intensity graph
  1752.           down by a constant amount.
  1753.  
  1754.  
  1755.      Sharp
  1756.           Increases the contrast of the image by moving handles on the left
  1757.           side of the Intensity graph down, and handles on the right side up.
  1758.  
  1759.  
  1760.      Dull Decreases the contrast of the image by moving handles on the left
  1761.           side of the Intensity graph up, and handles on the right side down.
  1762.  
  1763.  
  1764.      Norm  (Keyboard equivalent 'N')
  1765.           Normalizes the image so that the darkest pixels in the image are
  1766.           given an intensity of '0', and the brightest pixels in the image
  1767.           are given an intensity of '255'.  Intermediate colors are interpo-
  1768.           lated accordingly.  This forces the image to have the full (max-
  1769.           imum) dynamic range.
  1770.  
  1771.  
  1772.      HistEQ  (Keyboard equivalent 'H')
  1773.           Runs a histogram equalization algorithm on the currently displayed
  1774.           region of the image.  This is, if you're cropped, it will only run
  1775.           the algorithm on the cropped section.  Note, however, that the only
  1776.           modification it makes to the image is to generate a bizarre
  1777.  
  1778.  
  1779.    Rev: 2.10                                                               27
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.    xv(l)                                                         Feb 26, 1992
  1787.  
  1788.  
  1789.           corrective Intensity curve.  As such, if you HistEQ a section of
  1790.           the image, then UnCrop, the rest of the image will probably not be
  1791.           what you'd want.  Also note that the histogram curve will 'go away'
  1792.           if you touch any of the handles in the Intensity graph window, just
  1793.           like a 'gamma' curve would.
  1794.  
  1795.  
  1796.      The 'Display with HSV/RGB mods' checkbox tells you whether or you're
  1797.      looking at a modified image (checked) or the 'raw', unmodified image
  1798.      (unchecked).  The Apply and NoMod buttons change the setting of this
  1799.      checkbox, and you can also change the checkbox directly by clicking on
  1800.      it.
  1801.  
  1802.      The 'Auto-apply HSV/RGB mods' checkbox controls whether or not the pro-
  1803.      gram regenerates and redisplays the image after each change to an HSV or
  1804.      RGB control.  By default, this checkbox is turned on, so that you can
  1805.      easily see the results of your modifications.  However, in the case that
  1806.      you want to make a large number of changes at once, it might be prefer-
  1807.      able to turn automatic redisplay off for a while, to speed things up.
  1808.  
  1809.      The 'Auto-reset on new image' checkbox controls whether or not the HSV
  1810.      and RGB controls are Reset back to their default values whenever a new
  1811.      image is loaded up.  By default, this is also turned on, as when you're
  1812.      playing with the HSV/RGB controls, you probably only want to affect the
  1813.      current image, and not all subsequently loaded images as well.
  1814.  
  1815.  
  1816.    SECTION 6: THE LOAD WINDOW
  1817.  
  1818.      The _x_v _l_o_a_d window lets you load and view images interactively, without
  1819.      specifying them on the command line when you start _x_v.
  1820.  
  1821.      The load window shows the contents of the current directory in a scrol-
  1822.      ling window.  The files will be sorted alphabetically, with all the
  1823.      directories (and symbolic links to directories, if your operating system
  1824.      supports them) displayed first.
  1825.  
  1826.      This list window operates in the same way that the one in the _x_v con-
  1827.      trols window works.  (See "Section 3.7.1: Operating a List Window" for
  1828.      details.)  In short, you can operate the scroll bar, drag the highlight
  1829.      bar around the window, and use the up-arrow, down-arrow, Home, End, Page
  1830.      Up, and Page Down keys on your keyboard.
  1831.  
  1832.      Whenever you click on a name in the list (or otherwise change the posi-
  1833.      tion of the highlight bar), the name of the highlighted file is copied
  1834.      to the "Load file" text entry region, located below the list window.
  1835.      Pressing the Ok button (or typing <return>) will cause the program to
  1836.      attempt to load the specified file.  If the load attempt is successful,
  1837.      the load window will disappear, and the new image will be displayed.
  1838.      Otherwise, an error message will be displayed, and the load window will
  1839.      remain visible.
  1840.  
  1841.      The Browse checkbox overrides this behavior, and keeps the load window
  1842.      visible until it is explicitly closed via the Cancel button.  This is
  1843.  
  1844.  
  1845.    28                                                               Rev: 2.10
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.    Feb 26, 1992                                                         xv(l)
  1853.  
  1854.  
  1855.      handy if you're using _x_v to 'wander around a directory tree', and plan
  1856.      to be using the Load command quite often.
  1857.  
  1858.      If the image is successfully loaded, its name will be added to the _x_v
  1859.      _c_o_n_t_r_o_l_s window list.  This will let you quickly reload it later without
  1860.      have to go through the _x_v _l_o_a_d window again.
  1861.  
  1862.      You can also load a file by double-clicking on its name in the file
  1863.      list.
  1864.  
  1865.      If the specified filename begins with a '!' or '|' character, the
  1866.      filename will be interpeted as a shell command to run.  The leading '!'
  1867.      or '|' gets stripped off, and the rest of the line is fed to the default
  1868.      system shell.  The command is expected to generate an image in one of
  1869.      the formats that _x_v recognizes.  This image is expected to be the stdout
  1870.      of the specified command.  If the command returns non-zero, it is
  1871.      assumed that the command failed, and no image is loaded.  You can pipe
  1872.      multiple commands together.  For example, loading "! xwd | xwdtopnm"
  1873.      would run _x_w_d to generate a window dump, pipe that to _x_w_d_t_o_p_n_m to con-
  1874.      vert it to a PPM file, which in turn is piped to _x_v.
  1875.  
  1876.      If the specified file is a directory, _x_v will figure that out and
  1877.      (instead of loading it) will 'cd' to that directory, and display its
  1878.      contents in the list window.
  1879.  
  1880.      Above the list window is a pop-up menu button, much like the Display
  1881.      Modes button in the _x_v _c_o_n_t_r_o_l_s window.  It normally displays the name
  1882.      of the current directory.  If you click this button, and hold the mouse
  1883.      down, the complete path will be shown, one directory per line.  You can
  1884.      go 'up' the directory tree any number of levels, all the way up to the
  1885.      root directory, by simply selecting a directory name in this list.
  1886.  
  1887.      For those who prefer the direct approach, you can simply type file or
  1888.      directory names in the "Load file" text entry region.  If you type a
  1889.      directory name and hit <return>, _x_v will 'cd' to that directory and
  1890.      display its contents in the list window.  If you type a file name and
  1891.      hit <return>, _x_v will attempt to load the file.  You can enter relative
  1892.      paths (relative to the currently displayed directory), absolute paths,
  1893.      and even paths that begin with a '~'.
  1894.  
  1895.      The "Load file" text entry region supports a number of emacs-like edit-
  1896.      ing keys.
  1897.  
  1898.           Ctrl-F    moves the cursor forward one character
  1899.  
  1900.           Ctrl-B    moves the cursor backward one character
  1901.  
  1902.           Ctrl-A    moves the cursor to the beginning of the line
  1903.  
  1904.           Ctrl-E    moves the cursor to the end of the line
  1905.  
  1906.           Ctrl-D    deletes the character to the right of the cursor
  1907.  
  1908.           Ctrl-U    clears the entire line
  1909.  
  1910.  
  1911.    Rev: 2.10                                                               29
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.    xv(l)                                                         Feb 26, 1992
  1919.  
  1920.  
  1921.           Ctrl-K    clears from the cursor position to the end of the line.
  1922.  
  1923.      If the filename is so long that it cannot be completely displayed in the
  1924.      text entry region, a thick line will appear on the left or right side
  1925.      (or both sides) of the region to show that "there's more over this way".
  1926.  
  1927.      Pressing the Rescan button will rescan the current directory.  While the
  1928.      contents of the current directory are read each time the load window is
  1929.      opened, it is perfectly possible (given a multitasking operating system)
  1930.      that some other program may add, delete, or rename files in the current
  1931.      directory.  _X_V would not know if this happened.  The Rescan button gives
  1932.      you an easy way of 'kicking' _x_v into looking again.
  1933.  
  1934.  
  1935.    SECTION 7: THE SAVE WINDOW
  1936.  
  1937.      The _x_v _s_a_v_e window lets you write images back to disk, presumably after
  1938.      you've modified them.  You can write images back many different formats,
  1939.      not just the original format.  Warning!  Images are saved as they are
  1940.      currently shown (at the current size, with the current color modifica-
  1941.      tion, rotation, cropping, etc. applied).  The only exception to this
  1942.      rule is if you are on a 1-bit B/W display.  The fact that images have to
  1943.      be stippled in black and white in order to be displayed on such a screen
  1944.      doesn't count as 'modification', and the file won't be saved 'as
  1945.      displayed'.  You can manipulate and save full-color images on such a
  1946.      display, even if you can't really see them.
  1947.  
  1948.      For the most part, the _x_v _s_a_v_e window operates exactly like the _x_v _l_o_a_d
  1949.      window.  (See "Section 6: The Load Window" for details.)  Only the
  1950.      differences are listed here.
  1951.  
  1952.      When the window is opened, it should have the filename of the currently
  1953.      loaded file already entered into the text entry region.  If you change
  1954.      directories, or click on a file name in the list window, this name will
  1955.      be cleared and replaced with the new name.
  1956.  
  1957.      At the bottom of the window are a list of possible formats in which you
  1958.      can save the file.  If you click on one of these formats, and your
  1959.      filename has a recognized suffix (i.e., '.gif', '.GIF', '.pbm', etc.),
  1960.      the suffix portion of your filename will be replaced with the new,
  1961.      appropriate suffix for the selected format.
  1962.  
  1963.      You can pipe output from _x_v to other programs by using the _x_v _s_a_v_e win-
  1964.      dow.  If the first character of the specified filename is '!' or '|',
  1965.      the rest of the filename is interpreted as a command to pipe the output
  1966.      to, in the currently selected image format.  A fine use for this feature
  1967.      is directly printing images to a PostScript printer by selecting
  1968.      'PostScript' in the formats list, and typing something like "| lpr" as
  1969.      the filename.  In this case, _x_v will create a temporary file, write the
  1970.      PostScript to that file, and cat the contents of that file to the
  1971.      entered command.  _X_V will wait for the command to complete.  If the com-
  1972.      mand completed successfully, the _x_v _s_a_v_e window will disappear.  If the
  1973.      command was unsuccessful, the window will remain visible.  In any event,
  1974.      the temporary file will be deleted.
  1975.  
  1976.  
  1977.    30                                                               Rev: 2.10
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.    Feb 26, 1992                                                         xv(l)
  1985.  
  1986.  
  1987.      There is a 'Save at normal size' checkbox.  Normally, when you save an
  1988.      image, it will be saved at the current expansion (ie, one screen pixel
  1989.      will map to one image pixel in the saved file. Sometimes, however, it is
  1990.      desirable to save an image at its original size.  This is most relevant
  1991.      when you're viewing images larger than your screen.  By default, _x_v will
  1992.      automatically shrink images so that they fit on the screen.  If you save
  1993.      these images, you'll find that you've lost a lot of data, that maybe you
  1994.      wanted to keep.  That's what this checkbox is here for.  Note:  certain
  1995.      operations, such as Smooth and Dither only affect the displayed image.
  1996.      If you choose to save an image at its normal size, these effects will
  1997.      not be in the saved image.
  1998.  
  1999.      At the bottom right side of the window there is a list of possible
  2000.      'Color' variations to save.  Most file formats support different 'sub-
  2001.      formats' for 24-bit color, 8-bit greyscale, 1-bit B/W stippled, etc.
  2002.      Not all of them do.  Likewise, not all 'Color' choices are available in
  2003.      all formats.
  2004.  
  2005.      In general, the 'Color' choices do the following:
  2006.  
  2007.  
  2008.      Full Color
  2009.           Saves the image as currently shown with all color modifications,
  2010.           cropping, rotation, flipping, resizing, and smoothing.  The image
  2011.           will be saved with all of its colors, even if you weren't able to
  2012.           display them all on your screen.  For example, you can load a color
  2013.           image on a 1-bit B/W display, modify it, and write it back.  The
  2014.           saved image will still be full color, even though all you could see
  2015.           on your screen was some B/W-dithered nightmare.
  2016.  
  2017.  
  2018.      Greyscale
  2019.           Like Full Color, but saves the image in a greyscale format.
  2020.  
  2021.  
  2022.      B/W Dithered
  2023.           Like Full Color, but before saving the image _x_v generates a 1-bit-
  2024.           per-pixel, black-and-white dithered version of the image, and saves
  2025.           that, instead.
  2026.  
  2027.  
  2028.      Reduced Color
  2029.           Saves the image as currently shown, with all color modifications,
  2030.           cropping, rotation, flipping, resizing, and smoothing.  The image
  2031.           will be saved as shown on the screen, with as many or few colors as
  2032.           _x_v was able to use on the display.  The major purpose of this is to
  2033.           allow special effects (color reduction) to be saved, in conjunction
  2034.           with the '-ncols' command line option.  You will probably never
  2035.           need to use this.
  2036.  
  2037.      Format notes:
  2038.  
  2039.  
  2040.      GIF  While _x_v can read both the GIF87a and GIF89a formats, it will only
  2041.  
  2042.  
  2043.    Rev: 2.10                                                               31
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.    xv(l)                                                         Feb 26, 1992
  2051.  
  2052.  
  2053.           write GIF87a.  This is in keeping with the GIF89 specification,
  2054.           which states that if you don't need any of the features added in
  2055.           GIF89 (which _x_v doesn't), you should continue to write GIF87, for
  2056.           greater compatibility with old GIF87-only readers.
  2057.  
  2058.           Since GIF only supports one format (up to 8 bits per pixel, with a
  2059.           colormap), there will be no size difference between a Full Color
  2060.           and a Greyscale image.  A B/W Dithered image, on the other hand,
  2061.           will be considerably smaller.
  2062.  
  2063.  
  2064.      PM   Full Color images are saved in the 3-plane, 1-band, PM_C format.
  2065.           Greyscale and B/W Dithered images are both saved in the 1-plane,
  2066.           1-band, PM_C format.  As such, there is no size advantage to saving
  2067.           in the B/W Dithered format.
  2068.  
  2069.  
  2070.      PBM (raw)
  2071.           Full Color images are saved in PPM format.  Greyscale images are
  2072.           saved in PGM format.  B/W Dithered images are saved in PBM format.
  2073.           Each of these formats are tailored to the data that they save, so
  2074.           PPM images are larger than PGM images, which are in turn larger
  2075.           than PBM images.
  2076.  
  2077.           In the raw variation of the PBM formats, the header information is
  2078.           written in plain ASCII text, and the image data is written as
  2079.           binary data.  This is the more popular of the two dialects of PBM.
  2080.  
  2081.  
  2082.      PBM (ascii)
  2083.           Like PBM (raw), only the image data is written as ASCII text.  As
  2084.           such, images written in this format will be several times larger
  2085.           than images written in PBM (raw).  This is a pretty good format for
  2086.           interchange between systems because it is easy to parse.  Also,
  2087.           since they are pure, printable ASCII text, images saved in this
  2088.           format can be mailed, without going through a _u_u_e_n_c_o_d_e-like pro-
  2089.           gram.
  2090.  
  2091.           Note that _x_v-produced PBM files may break some PBM readers that do
  2092.           not correctly parse comments.  If your PBM reader cannot parse com-
  2093.           ments, you can easily edit the PBM file and remove the comment
  2094.           lines.  A comment is everything from a "#" character to the end of
  2095.           the line.
  2096.  
  2097.  
  2098.      X11 Bitmap
  2099.           Saves files in the format used by the _b_i_t_m_a_p program, which is part
  2100.           of the standard X11 distribution.  Since bitmap files are
  2101.           inherently 1-bit per pixel, you can only select the B/W Dithered
  2102.           option for this format.
  2103.  
  2104.  
  2105.      Sun Rasterfile
  2106.           Full/Reduced Color images are stored in a 24-bit RGB format,
  2107.  
  2108.  
  2109.    32                                                               Rev: 2.10
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.    Feb 26, 1992                                                         xv(l)
  2117.  
  2118.  
  2119.           Greyscale images are stored in an 8-bit greyscale format, and B/W
  2120.           Dithered images are stored in a 1-bit B/W format.
  2121.  
  2122.  
  2123.      PostScript
  2124.           Full/Reduced Color images are stored in a 24-bit RGB format, Greys-
  2125.           cale images are stored in an 8-bit greyscale format, and B/W Dith-
  2126.           ered images are stored in a 1-bit B/W format.
  2127.  
  2128.           _X_V writes Encapsulated PostScript, so you can incorporate _x_v-
  2129.           generated PostScript into many desktop-publishing programs.  _X_V
  2130.           also prepends some color-to-greyscale code, so even if your printer
  2131.           doesn't support color, you can still print 'color' PostScript
  2132.           images.  These images will be three times larger (in file size)
  2133.           than their greyscale counterparts, so it's a good idea to save
  2134.           Greyscale PostScript, unless you know you may be printing the file
  2135.           on a color printer at some point.
  2136.  
  2137.           Also, you should probably never need to generate B/W Dithered
  2138.           PostScript, as every PostScript printer I've ever heard of can
  2139.           print greyscale images.  The only valid cases I can think of are:
  2140.           A) doing it for a special effect, and B) doing it to generate a
  2141.           much smaller (roughly 1/8th the size) PostScript file.
  2142.  
  2143.           Note: When you try to save a PostScript file, the _x_v _p_o_s_t_s_c_r_i_p_t
  2144.           window will pop up to let you specify how you want the image
  2145.           printed.  (See "Section 8: The PostScript Window", for details.)
  2146.  
  2147.  
  2148.      JPEG _X_V writes files in the JFIF format created by the Independent JPEG
  2149.           Group.  Full/Reduced Color images are written in a 24-bit RGB for-
  2150.           mat, and Greyscale images are written in an 8-bit greyscale format.
  2151.           B/W Dithered images should not be used, as they will probably wind
  2152.           up being larger than Greyscale versions of the same images, due to
  2153.           the way JPEG works.  Note:  You cannot write Reduced Color JPEG
  2154.           files.  If you attempt to, a Full Color JPEG file will be saved.
  2155.  
  2156.           When you save in the JPEG format, a dialog box will pop up and ask
  2157.           you for a quality setting.  '75%' is the default value, and really,
  2158.           it's a fine value.  You shouldn't have to change it unless you're
  2159.           specifically trying to trade off quality for compression, or vice
  2160.           versa.  The useful range of values is 5%-95%.
  2161.  
  2162.  
  2163.      TIFF Full/Reduced Color images are written in a 24-bit RGB format,
  2164.           Greyscale images are written in an 8-bit greyscale format, and B/W
  2165.           Dithered images are written in a 1-bit B/W format.
  2166.  
  2167.           When you save in the TIFF format, a dialog box will pop up and ask
  2168.           you which type of image compression it should use.  None, LZW, and
  2169.           PackBits compression types are available for Full/Reduced Color,
  2170.           Greyscale, and B/W Dithered modes.  In addition, there are two B/W
  2171.           Dithered-only algorithms, CCITT Group3 and CCITT Group4.
  2172.  
  2173.  
  2174.  
  2175.    Rev: 2.10                                                               33
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.    xv(l)                                                         Feb 26, 1992
  2183.  
  2184.  
  2185.  
  2186.    SECTION 8: THE POSTSCRIPT WINDOW
  2187.  
  2188.      The _x_v _p_o_s_t_s_c_r_i_p_t window lets you describe how your image should look
  2189.      when printed.  You can set the paper size and the image size, position
  2190.      the image on the paper, and print in 'portrait' or 'landscape' mode.
  2191.  
  2192.      The majority of the _x_v _p_o_s_t_s_c_r_i_p_t window is taken up by a window that
  2193.      shows a white rectangle (the page) with a black rectangle (the image)
  2194.      positioned on it.  You can position the image rectangle anywhere on the
  2195.      page.  The only constraint is that the center of the image (where the
  2196.      two diagonal lines meet) must remain on the page.  Only the portion of
  2197.      the image that is on the page will actually be printed.
  2198.  
  2199.      The image can be (roughly) positioned on the page by clicking in the
  2200.      image rectangle and dragging it around.  As you move the image, the
  2201.      "Top" and "Left" position displays will show the size of the top and
  2202.      left margins (the distance between the top-left corner of the page and
  2203.      the top-left corner of the image).
  2204.  
  2205.      You'll note that you have limited placement resolution with the mouse.
  2206.      If you want to fine-position the image, you can use the arrow keys to
  2207.      move the image around.  The arrow keys will move the image in .001"
  2208.      increments.  You can hold them down, and they will auto-repeat.  You can
  2209.      also hold a <shift> key down while using the arrow keys.  This will move
  2210.      the image in .01" increments.
  2211.  
  2212.      You can change the size of the printed image by adjusting the "Width" or
  2213.      "Height" dials.  Normally, the dials are locked together, to keep the
  2214.      aspect ratio of the image constant.  You can unlock the dials by turning
  2215.      the off the checkbox located below the dials.  As you change the dials,
  2216.      the size of the image (when printed) is displayed below, in inches and
  2217.      in millimeters.  The current resolution of the image is also displayed
  2218.      below.  The "Resolution" numbers tell you how many image pixels will be
  2219.      printed per inch.
  2220.  
  2221.      Located below the 'page' rectangle are a set of radio buttons that let
  2222.      you specify the current paper size (8.5" x 11", 8.5" x 14", 11" x 17",
  2223.      A4, B5, 4"x5", and 35mm), and orientation (Portrait and Landscape).
  2224.  
  2225.      The Center button will center the image on the page.  The Maxpect button
  2226.      will make the image as large as possible (maintaining half-inch margins
  2227.      on all sides) without changing the aspect ratio.
  2228.  
  2229.      There are a pair of small buttons located next to the "Left" and "Top"
  2230.      displays.  Clicking the "Left" one will cycle between displaying the
  2231.      "Left" margin, the "Right" margin, and the "Center X" position (the dis-
  2232.      tance from the left edge of the paper to the center of the image).
  2233.  
  2234.      Clicking the "Top" display's button will cycle between displaying the
  2235.      size of the "Top" margin, the size of the "Bottom" margin, and the
  2236.      "Center Y" position (the distance from the top edge of the paper to the
  2237.      center of the image).
  2238.  
  2239.  
  2240.  
  2241.    34                                                               Rev: 2.10
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.    Feb 26, 1992                                                         xv(l)
  2249.  
  2250.  
  2251.      At the top of the _x_v _p_o_s_t_s_c_r_i_p_t window are a pair of checkboxes.  The
  2252.      "preview" checkbox lets you specify whether or not to include a b/w pre-
  2253.      view of the image in the PostScript file.  Certain desktop publishing
  2254.      programs may make use of such a preview.
  2255.  
  2256.      The 'compress' checkbox lets you specify whether or not to generate
  2257.      compressed 8-bit PostScript.  This is particularly handy if you're gen-
  2258.      erating color PostScript as color PostScript files are normally three
  2259.      times larger than their greyscale counterparts.  Compression can shrink
  2260.      these color PostsScript files by a factor of 4:1.  It has a lesser
  2261.      effect on greyscale images.  It should be noted, however, that
  2262.      compressed PostScript files may take 2-3 times longer to print than
  2263.      uncompressed PostScript files. However, if you are connected to your
  2264.      laser printer via a slow 9600 baud serial line, the decreased transmis-
  2265.      sion time due to compressed data may more than make up for the increased
  2266.      execution time.  You'll have to decide for yourself.
  2267.  
  2268.      Click the "Ok" button when you're finished with the _x_v _p_o_s_t_s_c_r_i_p_t win-
  2269.      dow.  If everything is successful, the _x_v _p_o_s_t_s_c_r_i_p_t and the _x_v _s_a_v_e
  2270.      window will both close.  If _x_v was unable to write the PostScript file,
  2271.      the _x_v _p_o_s_t_s_c_r_i_p_t window will close, but the _x_v _s_a_v_e window will remain
  2272.      open, to give you a chance to enter a different filename.
  2273.  
  2274.  
  2275.    SECTION 9: MODIFYING XV BEHAVIOR
  2276.  
  2277.      _X_V supports literally dozens of command line options and X11 resources.
  2278.      Fortunately, it is doubtful that you'll ever need to use more than a
  2279.      small few.  The rest are provided mainly for that 'one special case'
  2280.      application of _x_v...
  2281.  
  2282.  
  2283.      Section 9.1: Command Line Options Overview
  2284.  
  2285.  
  2286.      If you start _x_v with the command 'xv -help', the current list of options
  2287.      will be displayed:
  2288.  
  2289.           xv [-] [-2xlimit] [-aspect _w:_h] [-bg _c_o_l_o_r] [-black _c_o_l_o_r]
  2290.           [-bw _w_i_d_t_h] [-cegeometry _g_e_o_m] [-cemap] [-cgeometry _g_e_o_m]
  2291.           [-clear] [-cmap] [-cursor _c_h_a_r#] [-DEBUG _l_e_v_e_l]
  2292.           [-display _d_i_s_p] [-dither] [-expand _e_x_p] [-fg _c_o_l_o_r]
  2293.           [-fixed] [-geometry _g_e_o_m] [-help] [-hi _c_o_l_o_r] [-hsv]
  2294.           [-igeometry _g_e_o_m] [-imap] [-keeparound] [-lo _c_o_l_o_r] [-max]
  2295.           [-maxpect] [-mono] [-ncols _n_c] [-nglobal] [-ninstall]
  2296.           [-nopos] [-noqcheck] [-owncmap] [-perfect] [-quit] [-rbg _c_o_l_o_r]
  2297.           [-rfg _c_o_l_o_r] [-rgb] [-rmode _m_o_d_e] [-_r_o_o_t] [-_r_w] [-_s_l_o_w_2_4]
  2298.           [-_s_m_o_o_t_h] [-_v_i_s_u_a_l _t_y_p_e] [-_w_a_i_t _s_e_c_o_n_d_s] [-_w_h_i_t_e _c_o_l_o_r]
  2299.           [-_w_l_o_o_p] [-_n_o_r_e_s_e_t_r_o_o_t] [-_b_r_o_w_s_e] [-_n_o_s_t_a_t] [-_b_e_s_t_2_4] [-_q_u_i_c_k_2_4]
  2300.           [-_c_e_c_m_a_p] [-_c_r_o_p] [-_r_v] [-_n_o_l_i_m_i_t_s] [-_l_o_a_d_c_l_e_a_r] [_f_i_l_e_n_a_m_e ...]
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.    Rev: 2.10                                                               35
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.    xv(l)                                                         Feb 26, 1992
  2315.  
  2316.  
  2317.      Section 9.2: General Options
  2318.  
  2319.  
  2320.  
  2321.      -help
  2322.           Print usage instructions, listing the current available command-
  2323.           line options.  Any unrecognized option will do this as well.
  2324.  
  2325.  
  2326.      -display _d_i_s_p
  2327.           Specifies the display that _x_v should attempt to connect to.  If you
  2328.           don't specify a display, _x_v will use the environment variable
  2329.           $_D_I_S_P_L_A_Y.
  2330.  
  2331.  
  2332.      -fg _c_o_l_o_r  (Resource name: foreground _s_t_r_i_n_g)
  2333.           Sets the foreground color used by the windows.
  2334.  
  2335.  
  2336.      -bg _c_o_l_o_r  (Resource name: background _s_t_r_i_n_g)
  2337.           Sets the background color used by the windows.
  2338.  
  2339.  
  2340.      -hi _c_o_l_o_r  (Resource name: highlight _s_t_r_i_n_g)
  2341.           Sets the highlight color used for the top-left edges of the control
  2342.           buttons.
  2343.  
  2344.  
  2345.      -lo _c_o_l_o_r  (Resource name: lowlight _s_t_r_i_n_g)
  2346.           Sets the lowlight color used for the bottom-right edges of the con-
  2347.           trol buttons, and also the background of some windows.
  2348.  
  2349.  
  2350.      -bw _b_w_i_d_t_h  (Resource name: borderWidth _i_n_t_e_g_e_r)
  2351.           Sets the width of the border on the windows.  Your window manager
  2352.           may choose to ignore this, however.
  2353.  
  2354.  
  2355.      Section 9.3: Image Sizing Options
  2356.  
  2357.  
  2358.  
  2359.      -geometry _g_e_o_m  (Resource name: geometry _s_t_r_i_n_g)
  2360.           Lets you specify the size and placement of the 'image' window.
  2361.           It's most useful when you only specify a position, and let _x_v
  2362.           choose the size.  If you specify a size as well, _x_v will create a
  2363.           window of that size, unless -fixed is specified.  The geom argument
  2364.           is in the form of a normal X geometry string (e.g. "300x240" or
  2365.           "+10+10" or "400x300+10+10").
  2366.  
  2367.  
  2368.      -fixed  (Resource name: fixed _b_o_o_l_e_a_n)
  2369.           Only used in conjunction with the -geometry option.  If you specify
  2370.           a window size with the -geometry option, _x_v will normally stretch
  2371.  
  2372.  
  2373.    36                                                               Rev: 2.10
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.    Feb 26, 1992                                                         xv(l)
  2381.  
  2382.  
  2383.           the picture to exactly that size.  This is not always desirable, as
  2384.           it may seriously distort the aspect ratio of the picture.  Specify-
  2385.           ing the -fixed option corrects this behavior by instructing _x_v to
  2386.           use the specified geometry size as a maximum window size.  It will,
  2387.           however, preserve the original aspect ratio of the picture.
  2388.  
  2389.           For example, if you give a rectangular geometry of '320x240', and
  2390.           you try to display a square picture with a size of '256x256', the
  2391.           window opened will actually be '240x240', which is the largest
  2392.           square that still fits in the '320x240' rectangle that was speci-
  2393.           fied.
  2394.  
  2395.  
  2396.      -expand _e_x_p  (Resource name: expand  _f_l_o_a_t_i_n_g-_p_o_i_n_t)
  2397.           Lets you specify an initial expansion or compression factor for the
  2398.           picture.  You can specify floating-point values.  Values larger
  2399.           than zero multiply the picture's dimensions by the given factor.
  2400.           (i.e., an expand factor of '3' will make a 320x200 image display as
  2401.           960x600).
  2402.  
  2403.           Factors less than zero are treated as reciprocals.  (i.e., an
  2404.           expand factor of '-4' makes the picture 1/4th its normal size.).
  2405.           '0' is not a valid expansion factor.
  2406.  
  2407.  
  2408.      -aspect _w:_h  (Resource name: aspect _s_t_r_i_n_g)
  2409.           Lets you set an initial aspect ratio, and also sets the value used
  2410.           by the Aspect control.  The aspect ratio of nearly every X display
  2411.           (and, in fact, any civilized graphics display) is 1:1.  What this
  2412.           means is that pixels appear to be 'square'.  A 100 pixel wide by
  2413.           100 pixel high box will appear on the screen as a square.  Unfor-
  2414.           tunately, this is not the case with some screens and digitizers.
  2415.           The -aspect option lets you stretch the picture so that the picture
  2416.           appears correctly on your display.  Unlike the other size-related
  2417.           options, this one doesn't care what the size of the overall picture
  2418.           is.  It operates on a pixel-by-pixel basis, stretching each image
  2419.           pixel slightly, in either width or height, depending on the ratio.
  2420.  
  2421.           Aspect ratios greater than '1:1' (e.g., '4:3') make the picture
  2422.           wider than normal.  Aspect ratios less than '1:1' (e.g. '2:3') make
  2423.           the picture taller than normal.  (Useful aspect ratio: A 512x480
  2424.           image that was supposed to fill a standard 4x3 video screen (pro-
  2425.           duced by many video digitizers) should be displayed with an aspect
  2426.           ratio of '5:4')
  2427.  
  2428.  
  2429.      Section 9.4: Color Allocation Options
  2430.  
  2431.  
  2432.  
  2433.      -ncols _n_c  (Resource name: ncols _i_n_t_e_g_e_r)
  2434.           Sets the maximum number of colors that _x_v will use.  Normally, this
  2435.           is set to 'as many as it can get'.  However, you can set this to
  2436.           smaller values for interesting effect.  Most notably, if you set it
  2437.  
  2438.  
  2439.    Rev: 2.10                                                               37
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.    xv(l)                                                         Feb 26, 1992
  2447.  
  2448.  
  2449.           to '0', it will display the picture by dithering with 'black' and
  2450.           'white'.  (The actual colors used can be set by the -black and
  2451.           -white options, below.)
  2452.  
  2453.  
  2454.      -nglobal (Resource name: nglobal _b_o_o_l_e_a_n)
  2455.           Adjusts the way the program behaves when it is unable to get all
  2456.           the colors it requested.  Normally, it will search the display's
  2457.           default colormap, and 'borrow' any colors it deems appropriate.
  2458.           These borrowed colors are, however, not owned by _x_v, and as such,
  2459.           can changed without _x_v'_s permission, or knowledge.  If this hap-
  2460.           pens, the displayed picture will change, in a less-than-desirable
  2461.           direction.  If you specify the -nglobal option, _x_v will not use
  2462.           'global' colors.  It will only use colors that it successfully
  2463.           allocated, which makes it immune to any color changes.
  2464.  
  2465.           It should be noted that 'use global colors' is the default because
  2466.           color changes aren't generally a problem if you are only using _x_v
  2467.           to display a picture for a short time.  Color changes only really
  2468.           become a problem if you use _x_v to display a picture that you will
  2469.           be keeping around for a while, while you go and do some other work
  2470.           (such as using _x_v to display a background).  In such cases you will
  2471.           want to specify -nglobal.  Note: using the -ncols or -root options
  2472.           automatically turn on -nglobal.
  2473.  
  2474.  
  2475.      -rw  (Resource name: rwColor _b_o_o_l_e_a_n)
  2476.           Tells _x_v to use read/write color cells.  Normally, _x_v allocates
  2477.           colors read-only, which allows it to share colors with other pro-
  2478.           grams.  If you use read/write color cells, no other program can use
  2479.           the colors that _x_v is using, and vice-versa.  The only reason you'd
  2480.           do such a thing is that using read/write color cells allows the
  2481.           Apply function in the _x_v _c_o_l_o_r _e_d_i_t_o_r window to operate much fas-
  2482.           ter.
  2483.  
  2484.  
  2485.      -perfect  (Resource name: perfect _b_o_o_l_e_a_n)
  2486.           Makes _x_v try 'extra hard' to get all the colors it wants.  In par-
  2487.           ticular, when -perfect is specified, _x_v will allocate and install
  2488.           its own colormap if (and only if) it was unable to allocate all the
  2489.           desired colors.  This option is not allowed in conjunction with the
  2490.           -root option.
  2491.  
  2492.  
  2493.      -owncmap  (Resource name: ownCmap _b_o_o_l_e_a_n)
  2494.           Like '-perfect', only this option forces _x_v to always allocate and
  2495.           install its own colormap, thereby leaving the default colormap
  2496.           untouched.
  2497.  
  2498.  
  2499.      -cecmap  (Resource name: ceditColorMap _b_o_o_l_e_a_n)
  2500.           Specifies whether _x_v installs the image's colormap in the _x_v _c_o_l_o_r
  2501.           _e_d_i_t_o_r window, as well as in the image's window.  By default, the
  2502.           program does install the colormap in the color editor window,
  2503.  
  2504.  
  2505.    38                                                               Rev: 2.10
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.    Feb 26, 1992                                                         xv(l)
  2513.  
  2514.  
  2515.           however this can occasionally make the color editor window unread-
  2516.           able.  (This option only apples when the '-perfect' or '-owncmap'
  2517.           options create their own colormaps.)
  2518.  
  2519.  
  2520.      -ninstall  (Resource name: ninstall _b_o_o_l_e_a_n)
  2521.           Prevents _x_v from 'installing' its own colormap, when the -perfect
  2522.           or -owncmap options are in effect.  Instead of installing the
  2523.           colormap, it will merely 'ask the window manager, nicely' to take
  2524.           care of it.  This is the correct way to install a colormap (i.e.,
  2525.           ask the WM to do it), unfortunately, it doesn't actually seem to
  2526.           work in many window managers, so the default behavior is for _x_v to
  2527.           handle installation itself.  However, this has been seen to annoy
  2528.           one window manager (_d_x_w_m), so this option is provided if your WM
  2529.           doesn't like programs installing their own colormaps.
  2530.  
  2531.  
  2532.      Section 9.5: 24-bit Conversion Options
  2533.  
  2534.  
  2535.      The following options only come into play if you are using _x_v to display
  2536.      24-bit RGB data (PPM files, color PM files, JPEG files, the output of
  2537.      _b_g_g_e_n, etc.).  They have no effect whatsoever on how GIF pictures or 8-
  2538.      bit greyscale images are displayed.
  2539.  
  2540.  
  2541.      -quick24  (Resource name: quick24 _b_o_o_l_e_a_n)
  2542.           Forces _x_v to use the 'quick' 24-bit to 8-bit conversion algorithm.
  2543.           This algorithm dithers the picture using a fixed set of colors that
  2544.           span the entire RGB colorspace.  In versions of _x_v prior to 2.10,
  2545.           this was the default algorithm.  It no longer is.
  2546.  
  2547.  
  2548.      -slow24  (Resource name: slow24 _b_o_o_l_e_a_n)
  2549.           Specifies that the 'slow' 24-bit to 8-bit conversion algorithm is
  2550.           to be used by the program.  This algorithm uses a version of
  2551.           Heckbert's median cut algorithm to pick the 'best' colors on a
  2552.           per-image basis, and dithers with those.  This is the current
  2553.           default conversion algorithm.
  2554.  
  2555.           Advantages: The -slow24 algorithm often produces better looking
  2556.           pictures than the -quick24 algorithm.
  2557.  
  2558.           Disadvantages: The -slow24 algorithm is about half the speed of the
  2559.           -quick24 algorithm.  Also, since the colors are chosen on a per-
  2560.           image basis, it can't be used to display multiple images simultane-
  2561.           ously, as each image will almost certainly want a different set of
  2562.           256 colors.  The -quick24 algorithm, however, uses the same exact
  2563.           colors for all images, so it can display many images simultane-
  2564.           ously, without running out of colors.
  2565.  
  2566.  
  2567.      -best24  (Resource name: best24 _b_o_o_l_e_a_n)
  2568.           Forces _x_v to use the same algorithm used in the program _p_p_m_q_u_a_n_t,
  2569.  
  2570.  
  2571.    Rev: 2.10                                                               39
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.    xv(l)                                                         Feb 26, 1992
  2579.  
  2580.  
  2581.           written by Jef Poskanzer.  This algorithm also uses a version of
  2582.           Heckbert's median cut algorithm, but is capable of picking 'better'
  2583.           colors than the -slow24 algorithm, and it _d_o_e_s_n'_t dither.
  2584.  
  2585.           Advantages:  Generally produces slightly better images than the
  2586.           -slow24 algorithm.  Also, the images are undithered, so they look
  2587.           better when expanded.
  2588.  
  2589.           Disadvantages:  _M_u_c_h slower than the -slow24 algorithm.  Like, 5 to
  2590.           10 times slower.  The images produced aren't _t_h_a_t much better than
  2591.           those produced by the -slow24 algorithm.
  2592.  
  2593.  
  2594.      -noqcheck  (Resource name: noqcheck _b_o_o_l_e_a_n)
  2595.           Turns off a 'quick check' that is normally made.  Normally, before
  2596.           running either of the 24-bit to 8-bit conversion algorithms, _x_v
  2597.           determines whether the picture to be displayed has more than 256
  2598.           unique colors in it.  If the picture doesn't, it will treat the
  2599.           picture as an 8-bit colormapped image (i.e., GIF), and won't run
  2600.           either of the conversion algorithms.
  2601.  
  2602.           Advantages: The pictures will be displayed 'perfectly', whereas if
  2603.           they went through either of the conversion algorithms, they'd be
  2604.           dithered.
  2605.  
  2606.           Disadvantages: Often uses a lot of colors, which limits the ability
  2607.           to view multiple images at once.  (See the -slow24 option above for
  2608.           further info about color sharing.)
  2609.  
  2610.  
  2611.      Section 9.6: Root Window Options
  2612.  
  2613.  
  2614.      _x_v has the ability to display images on the root window of an X display,
  2615.      rather than opening its own window (the default behavior).  When using
  2616.      the root window, the program is somewhat limited, because the program
  2617.      cannot receive input events (key press and mouse clicks) from the root
  2618.      window.  As a result, you cannot track pixel values, or crop, nor can
  2619.      you use keyboard commands while the mouse is in the root window.
  2620.  
  2621.  
  2622.      -root  (Resource name:  <none>)
  2623.           Directs _x_v to display images in the root window, instead of opening
  2624.           its own window.  Exactly how the images will be displayed in the
  2625.           root window is determined by the setting of the -rmode option.
  2626.  
  2627.  
  2628.      -rmode _m_o_d_e    (Resource name: rootMode _i_n_t_e_g_e_r)
  2629.           Determines how images are to be displayed on the root window, when
  2630.           -root has been specified.  You can find the current list of 'modes'
  2631.           by using a mode value of '-1'.  _X_V will complain, and show a list
  2632.           of valid modes.  The current list at of the time of this writing
  2633.           is:
  2634.  
  2635.  
  2636.  
  2637.    40                                                               Rev: 2.10
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.    Feb 26, 1992                                                         xv(l)
  2645.  
  2646.  
  2647.             0:   tiling
  2648.             1:   integer tiling
  2649.             2:   mirrored tiling
  2650.             3:   integer mirrored tiling
  2651.             4:   centered tiling
  2652.             5:   centered on a solid background
  2653.             6:   centered on a 'warp' background
  2654.             7:   centered on a 'brick' background
  2655.  
  2656.           The default mode is '0'.  See "Section 3.5: The Display Modes Menu"
  2657.           for a description of the different display modes.
  2658.  
  2659.  
  2660.      -noresetroot (Resource name: resetroot)
  2661.           Normally, when changing from root to window display mode, the root
  2662.           is set to the standard X crosshatch pattern.  Using -noresetroot or
  2663.           setting resetroot to false will force the root to remain.  This is
  2664.           useful when comparing between different tiled images.
  2665.  
  2666.  
  2667.      -rfg _c_o_l_o_r  (Resource name: rootForeground _s_t_r_i_n_g)
  2668.           Sets the 'foreground' color used in some of the root display modes.
  2669.  
  2670.  
  2671.      -rbg _c_o_l_o_r  (Resource name: rootBackground _s_t_r_i_n_g)
  2672.           Sets the 'background' color used in some of the root display modes.
  2673.  
  2674.  
  2675.      -max  (Resource name: <none>)
  2676.           Makes _x_v automatically stretch the image to the full size of the
  2677.           screen.  This is mostly useful when you want _x_v to display a back-
  2678.           ground.  While you could just as well specify the dimensions of
  2679.           your display ('-geom 1152x900' for example), the -max option is
  2680.           display-independent.  If you suddenly decide to start working on a
  2681.           1280x1024 display (ferinstance) the same command will still work.
  2682.           Note: If you specify -max when you aren't using -root, the behavior
  2683.           is slightly different.  The image will be made as large as possible
  2684.           while still preserving the normal aspect ratio.
  2685.  
  2686.  
  2687.      -maxpect  (Resource name: <none>)
  2688.           Makes the image as large as possible while preserving the aspect
  2689.           ratio.
  2690.  
  2691.  
  2692.      -quit  (Resource name: <none>)
  2693.           Makes _x_v display the (first) specified file and exit, without any
  2694.           user intervention.  Since images displayed on the root window
  2695.           remain there until explicitly cleared, this is very useful for hav-
  2696.           ing _x_v display background images on the root window in some sort of
  2697.           start-up script.  Needless to say, this is only useful if you are
  2698.           using -root.
  2699.  
  2700.  
  2701.  
  2702.  
  2703.    Rev: 2.10                                                               41
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.    xv(l)                                                         Feb 26, 1992
  2711.  
  2712.  
  2713.      -clear  (Resource name: <none>)
  2714.           Clears the root window of any extraneous _x_v images.  Note: it is
  2715.           not necessary to do an 'xv -clear' before displaying another pic-
  2716.           ture in the root window.  _x_v will detect that there's an old image
  2717.           in the root window and automatically clear it out (and free the
  2718.           associated colors).
  2719.  
  2720.  
  2721.      Section 9.7: Window Options
  2722.  
  2723.  
  2724.      _X_V currently consists of three main windows, plus one window for the
  2725.      actual image.  These three windows (the _x_v _c_o_n_t_r_o_l_s window, the _x_v _i_n_f_o
  2726.      window, and the _x_v _c_o_l_o_r _e_d_i_t_o_r window) may be automatically mapped and
  2727.      positioned when the program starts.
  2728.  
  2729.  
  2730.      -cmap  (Resource name: ctrlMap _b_o_o_l_e_a_n)
  2731.           Maps the _x_v _c_o_n_t_r_o_l_s window.
  2732.  
  2733.  
  2734.      -cgeom _g_e_o_m  (Resource name: ctrlGeometry _s_t_r_i_n_g)
  2735.           Sets the initial geometry of the _x_v _c_o_n_t_r_o_l_s window.  Note: only
  2736.           the position information is used.  The window is of fixed size.
  2737.  
  2738.  
  2739.      -imap  (Resource name: infoMap _b_o_o_l_e_a_n)
  2740.           Maps the _x_v _i_n_f_o window.
  2741.  
  2742.  
  2743.      -igeom _g_e_o_m  (Resource name: infoGeometry _s_t_r_i_n_g)
  2744.           Sets the initial geometry of the _x_v _i_n_f_o window.  Note: only the
  2745.           position information is used.  The window is of fixed size.
  2746.  
  2747.  
  2748.      -cemap  (Resource name: ceditMap _b_o_o_l_e_a_n)
  2749.           Maps the _x_v _c_o_l_o_r _e_d_i_t_o_r window.
  2750.  
  2751.  
  2752.      -cegeom _g_e_o_m  (Resource name: ceditGeometry _s_t_r_i_n_g)
  2753.           Sets the initial geometry of the _x_v _c_o_l_o_r _e_d_i_t_o_r window.  Note:
  2754.           only the position information is used.  The window is of fixed
  2755.           size.
  2756.  
  2757.  
  2758.      -nopos  (Resource name: nopos _b_o_o_l_e_a_n)
  2759.           Turns off the 'default' positioning of the various _x_v windows.
  2760.           Every time you open a window, you will be asked to position it.
  2761.           (Assuming your window manager asks you such things.  _m_w_m, for
  2762.           instance doesn't seem to ask)
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.    42                                                               Rev: 2.10
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.    Feb 26, 1992                                                         xv(l)
  2777.  
  2778.  
  2779.      Section 9.8: Miscellaneous Options
  2780.  
  2781.  
  2782.  
  2783.      -mono  (Resource name: mono _b_o_o_l_e_a_n)
  2784.           Forces the image to be displayed as a greyscale.  This is most use-
  2785.           ful when you are using certain greyscale X displays.  While _x_v
  2786.           attempts to determine if it's running on a greyscale display, many
  2787.           X displays lie, and claim to be able to do color.  (This is often
  2788.           because they have color graphics boards hooked up to b/w monitors.
  2789.           The computer, of course, has no way of knowing what type of monitor
  2790.           is attached.)  On these displays, if you don't specify -mono, what
  2791.           you will see is a greyscale representation of one of the RGB out-
  2792.           puts of the system.  (For example, you'll see the 'red' output on
  2793.           our greyscale Sun 3/60s.) The -mono option corrects this behavior.
  2794.  
  2795.  
  2796.      -white _c_o_l_o_r  (Resource name: white _s_t_r_i_n_g)
  2797.           Specifies the 'white' color used when the picture is b/w stippled.
  2798.           (When '-ncols 0' has been specified.)
  2799.  
  2800.  
  2801.      -black _c_o_l_o_r  (Resource name: black _s_t_r_i_n_g)
  2802.           Specifies the 'black' color used when the picture is b/w stippled.
  2803.           (When '-ncols 0' has been specified.)
  2804.  
  2805.           Try something like: 'xv -ncols 0 -bl red -wh yellow <filename>' for
  2806.           some interesting, late-'60s-style psychodelia effects.
  2807.  
  2808.  
  2809.      -wait _s_e_c_s  (Resource name: <none>)
  2810.           Turns on a 'slide-show' feature.  Normally, if you specify multiple
  2811.           input files, _x_v will display the first one, and wait for you to
  2812.           give the Next command (or whatever).  The -wait option makes _x_v
  2813.           wait the specified number of seconds, and then go on to the next
  2814.           picture, without any user intervention.  The program still accepts
  2815.           commands, so it's possible to 'abort' the current picture without
  2816.           waiting the full specified time by using the Next command.
  2817.  
  2818.  
  2819.      -wloop  (Resource name: <none>)
  2820.           Normally, when running a slide-show with the -wait option, _x_v will
  2821.           terminate after displaying the last image.  If you also specify the
  2822.           -wloop option, the program will loop back to the first image and
  2823.           continue the slide-show until the user issues the Quit command.
  2824.  
  2825.  
  2826.      -rgb  (Resource name: hsvMode _b_o_o_l_e_a_n)
  2827.           Specifies that, by default, the colormap editing dials in the _x_v
  2828.           _c_o_l_o_r _e_d_i_t_o_r window should be in RGB mode.  This is the normal
  2829.           default behavior.
  2830.  
  2831.  
  2832.      -hsv  (Resource name: hsvMode _b_o_o_l_e_a_n)
  2833.  
  2834.  
  2835.    Rev: 2.10                                                               43
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.    xv(l)                                                         Feb 26, 1992
  2843.  
  2844.  
  2845.           Specifies that, by default, the colormap editing dials in the _x_v
  2846.           _c_o_l_o_r _e_d_i_t_o_r window should be in HSV mode.
  2847.  
  2848.  
  2849.      -dither  (Resouce name: autoDither _b_o_o_l_e_a_n)
  2850.           When specified, tells _x_v to automatically issue a Dither command
  2851.           whenever an image is first displayed.  Useful on displays with lim-
  2852.           ited color capabilities (4-bit and 6-bit displays.)
  2853.  
  2854.  
  2855.      -smooth  (Resource name:  autoSmooth _b_o_o_l_e_a_n)
  2856.           When specified, tells _x_v to automatically issue a Smooth command
  2857.           whenever an image is first displayed.  This is useful when you are
  2858.           using one of the image sizing options (such as '-expand' or '-
  2859.           max').
  2860.  
  2861.  
  2862.      -crop  (Resource name: autoCrop _b_o_o_l_e_a_n)
  2863.           When specified, tells _x_v to automatically issue an AutoCrop command
  2864.           whenever an image is first displayed.
  2865.  
  2866.  
  2867.      -visual _v_i_s_t_y_p_e  (Resource name: visual _s_t_r_i_n_g)
  2868.           Normally, _x_v uses the default visual model provided by your X
  2869.           server.  You can override this by explicitly selecting a visual to
  2870.           use.  Valid types are _S_t_a_t_i_c_G_r_a_y, _S_t_a_t_i_c_C_o_l_o_r, _T_r_u_e_C_o_l_o_r, _G_r_a_y_S_-
  2871.           _c_a_l_e, _P_s_e_u_d_o_C_o_l_o_r,
  2872.            and _D_i_r_e_c_t_C_o_l_o_r.  Not all of these are necessarily provided on any
  2873.           given X display.  Run _x_d_p_y_i_n_f_o on your display to find out what
  2874.           visual types are supported.
  2875.  
  2876.  
  2877.      -cursor _c_u_r_s  (Resource name: cursor _i_n_t_e_g_e_r)
  2878.           Specifies an alternate cursor to use in the image window (instead
  2879.           of the normal 'cross' cursor).  curs values are obtained by finding
  2880.           the character number of a cursor you like in the 'cursor' font.
  2881.           (Run 'xfd -fn cursor' to display the cursor font.)  For example, a
  2882.           curs value of '56' corresponds to the (singularly useless) 'Gumby'
  2883.           cursor.
  2884.  
  2885.  
  2886.      -keeparound  (Resource name: keepAround _b_o_o_l_e_a_n)
  2887.           The '-keeparound' option is now poorly named, as I've changed the
  2888.           default behavior.  Now, if you Delete the last file in the _x_v _c_o_n_-
  2889.           _t_r_o_l_s list, nothing unexpected will happen.  If you specify the '-
  2890.           keeparound' option, which toggles the '-keeparound' flag off, the
  2891.           program will automatically exit as a convenience.  It should prob-
  2892.           ably be renamed '-goaway' or something...
  2893.  
  2894.  
  2895.      -2xlimit  (Resource name: 2xlimit _b_o_o_l_e_a_n)
  2896.           By default, _x_v prevents the image window from ever getting larger
  2897.           than the screen.  Unfortunately, because of this, if you load an
  2898.           image that is larger than your screen, the image will be shrunk
  2899.  
  2900.  
  2901.    44                                                               Rev: 2.10
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.    Feb 26, 1992                                                         xv(l)
  2909.  
  2910.  
  2911.           until it fits on your screen.  Some folks find this undesirable
  2912.           behavior.  Specifying the -2xlimit option doubles the size limita-
  2913.           tions.  The image window will be kept from getting larger than 2x
  2914.           the width and height of your screen.
  2915.  
  2916.           Just in case you're wondering why there's any size limitations:
  2917.           it's fairly easy to accidentally ask for a huge image to be gen-
  2918.           erated.  Simply crop a section of the image, zoom so you can see
  2919.           the individual pixels, and uncrop.  If there were no size limita-
  2920.           tions, the (expanded many times) image could be huge, and might
  2921.           crash your X server.  At the very least, it would take a long
  2922.           period of time, and freeze your X server during part of it.  Gen-
  2923.           erally undesirable behavior.
  2924.  
  2925.  
  2926.      -nolimits  (Resource name: nolimites  _b_o_o_l_e_a_n)
  2927.           For the truly daring, this turns off all limitations on the maximum
  2928.           size of an image window.  (Well, there's still an X-imposed maximum
  2929.           size of 64k by 64k, but that really shouldn't be a problem.) Warn-
  2930.           ing:  as mentioned above, it is fairly easy to accidentally gen-
  2931.           erate a huge image when you do an UnCrop command, and you may well
  2932.           crash _x_v, your X server, the host machine, or all three.  Use At
  2933.           Your Own Risk!!!
  2934.  
  2935.  
  2936.      -rv  (Resource name: reverse)
  2937.           Makes _x_v display a 'negative' of the loaded image.  White becomes
  2938.           black, and black becomes white.  Color images will have 'interest-
  2939.           ing' effects, as the RGB components are individually reversed.  For
  2940.           example, _r_e_d (255,0,0) will become _c_y_a_n (0,255,255), _y_e_l_l_o_w will
  2941.           become _b_l_u_e, and so on.
  2942.  
  2943.  
  2944.      -DEBUG _l_e_v_e_l  (Resource name: <none>)
  2945.           Turns on some debugging information.  You shouldn't need this.  If
  2946.           everything worked perfectly, I wouldn't need this either.
  2947.  
  2948.  
  2949.      -browse  (Resource name: browseMode _b_o_o_l_e_a_n)
  2950.           Prevents the _x_v _l_o_a_d window from being closed whenever you success-
  2951.           fully load a file.  This makes 'browsing' a directory somewhat more
  2952.           pleasant.
  2953.  
  2954.  
  2955.      -nostat  (Resource name: nostat _b_o_o_l_e_a_n)
  2956.           Turns off the stat() call is is performed for each file whenever
  2957.           you change directories in the _x_v _l_o_a_d and _x_v _s_a_v_e windows.  This is
  2958.           useful if you're on a machine with lots of remote files mounted on
  2959.           it, and you find the directory switching to be too slow.
  2960.  
  2961.  
  2962.      -loadclear  (Resource name: clearOnLoad _b_o_o_l_e_a_n)
  2963.           If you were on a PseudoColor display, _x_v used to automatically
  2964.           clear the image window (or the root window, if you were in a root
  2965.  
  2966.  
  2967.    Rev: 2.10                                                               45
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.    xv(l)                                                         Feb 26, 1992
  2975.  
  2976.  
  2977.           mode), whenever you loaded a new image.  This was to prevent the
  2978.           potentially annoying/confusing 'rainbow' effect that happens when
  2979.           colormap entries are freed and reallocated with different colors.
  2980.           Ths has changed.  By default, _x_v no longer clears the image/root
  2981.           window.  This is for two reasons:  I've decided that the rainbow
  2982.           effect is semi-entertaining, in that it gives you something to look
  2983.           at while the next image is being loaded.  Secondly, if you are
  2984.           viewing a series of images that have the same colors in them, it's
  2985.           possible for _x_v to animate them (by using the '-wait' command line
  2986.           option), albeit no faster than one frame every 1-2 seconds.  For
  2987.           example, you can go get the satellite radar images from
  2988.           vmd.cso.uiuc.edu (in the directory 'wx'), run 'xv -wait 0 -wloop
  2989.           SA*', and voila!  Just like the evening news!
  2990.  
  2991.  
  2992.      -    Specifying '-' all by itself tells _x_v to take its input from stdin,
  2993.           rather than from a file.  This lets you put _x_v on the end of a Un*x
  2994.           pipe.
  2995.  
  2996.  
  2997.      Section 9.9: Color Editor Resources
  2998.  
  2999.  
  3000.      You can set default values for all of the HSV and RGB modification con-
  3001.      trols in the _x_v _c_o_l_o_r _e_d_i_t_o_r window via X resources.  The easiest way to
  3002.      explain this is with an example.
  3003.  
  3004.  
  3005.      o+  Start _x_v and put it in the background by typing 'xv &'.
  3006.  
  3007.      o+  Type the command 'cat >foo' in an active _x_t_e_r_m window
  3008.  
  3009.      o+  Bring the _x_v _c_o_l_o_r _e_d_i_t_o_r window up.
  3010.  
  3011.      o+  Issue the Cut Resources command.
  3012.  
  3013.      o+  Click your _M_i_d_d_l_e mouse button in the _x_t_e_r_m window.  A set of
  3014.         resource lines describing the current state of the _x_v _c_o_l_o_r _e_d_i_t_o_r
  3015.         controls will be 'pasted' into the window.
  3016.  
  3017.      o+  You could type '<ctrl-D>' in the _x_t_e_r_m to complete the cat command,
  3018.         edit this file, and put it in your .Xdefaults/.Xresources file.
  3019.  
  3020.  
  3021.      The lines generated by Cut Resources will look like the following:
  3022.      xv.default.huemap1: 330  30  CW 330  30  CW
  3023.      xv.default.huemap2:  30  90  CW  30  90  CW
  3024.      xv.default.huemap3:  90 150  CW  90 150  CW
  3025.      xv.default.huemap4: 150 210  CW 150 210  CW
  3026.      xv.default.huemap5: 210 270  CW 210 270  CW
  3027.      xv.default.huemap6: 270 330  CW 270 330  CW
  3028.      xv.default.whtmap:  0 0 1
  3029.      xv.default.satval:  0
  3030.      xv.default.igraf: S 4 : 0,0 : 64,64 : 192,192 : 254,254
  3031.  
  3032.  
  3033.    46                                                               Rev: 2.10
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.    Feb 26, 1992                                                         xv(l)
  3041.  
  3042.  
  3043.      xv.default.rgraf: S 4 : 0,0 : 64,64 : 192,192 : 254,254
  3044.      xv.default.ggraf: S 4 : 0,0 : 64,64 : 192,192 : 254,254
  3045.      xv.default.bgraf: S 4 : 0,0 : 64,64 : 192,192 : 254,254
  3046.  
  3047.      These lines completely describe one state of the _x_v _c_o_l_o_r _e_d_i_t_o_r con-
  3048.      trols.  There are five different states that you can specify via X
  3049.      resources.  The 'default' state (as shown) holds the settings used when-
  3050.      ever the program is first started, and whenever the Reset command is
  3051.      used.  You can also store settings in one of the four _x_v presets
  3052.      (accessed via the '1'-'4' buttons in the _x_v _c_o_l_o_r _e_d_i_t_o_r) by changing
  3053.      the string 'default' in the above lines to 'preset1', 'preset2',
  3054.      'preset3', or 'preset4' respectively.
  3055.  
  3056.      There are four types of resource described in these lines: huemap,
  3057.      whtmap, satval, and graf.
  3058.  
  3059.  
  3060.      Section 9.9.1: Huemap Resources
  3061.  
  3062.  
  3063.      The huemap resources describe the state of the hue remapping dials.
  3064.      There are six huemap resources per state of the _x_v _c_o_l_o_r _e_d_i_t_o_r.  These
  3065.      huemap resources are numbered 'huemap1', 'huemap2', ...  'huemap6', and
  3066.      correspond to the '1'-'6' radio buttons under the hue remapping dials.
  3067.  
  3068.      Each huemap resources takes six parameters:
  3069.  
  3070.      1. The 'starting' angle of the From range, in degrees (integer).
  3071.  
  3072.      2. The 'ending' angle of the From range, in degrees (integer).
  3073.  
  3074.      3. The direction of the From range.  Either 'cw' (clockwise) or 'ccw'
  3075.         (counter-clockwise).
  3076.  
  3077.      4. The 'starting' angle of the To range, in degrees (integer).
  3078.  
  3079.      5. The 'ending' angle of the To range, in degrees (integer).
  3080.  
  3081.      6. The direction of the To range.  Either 'cw' or 'ccw'.
  3082.  
  3083.  
  3084.      Section 9.9.2: Whtmap Resources
  3085.  
  3086.  
  3087.      The whtmap resource describes the state of the white remapping control.
  3088.      There is one whtmap resource per state of the _x_v _c_o_l_o_r _e_d_i_t_o_r controls.
  3089.      The whtmap resource takes three parameters:
  3090.  
  3091.      1. The hue to remap 'white' to, in degrees (integer).
  3092.  
  3093.      2. The saturation to give to the remapped 'white', in percent (integer).
  3094.  
  3095.      3. A boolean specifying whether the white remapping control is enabled.
  3096.         If '1', the control is enabled.  If '0', the control is disabled.
  3097.  
  3098.  
  3099.    Rev: 2.10                                                               47
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.    xv(l)                                                         Feb 26, 1992
  3107.  
  3108.  
  3109.  
  3110.      Section 9.9.3: Satval Resource
  3111.  
  3112.  
  3113.      The satval resource describes the value of the Saturation dial.  There
  3114.      is one satval resource per state.  The satval resource takes a single
  3115.      integer value, in the range +/-100, which specifies how much to add or
  3116.      subtract to overall image color saturation.
  3117.  
  3118.  
  3119.      Section 9.9.4: Graf Resources
  3120.  
  3121.  
  3122.      The graf resources describe the state of the four 'graph' windows in the
  3123.      _x_v _c_o_l_o_r _e_d_i_t_o_r window (Intensity, Red, Green, and Blue).  The graf
  3124.      resources can be in one of two formats, 'gamma' and 'spline/line'.
  3125.  
  3126.      In 'gamma' format, the graf resource takes two parameters:
  3127.  
  3128.      1. The letter 'G', specifying 'gamma' mode
  3129.  
  3130.      2. A single floating point number specifying the gamma value.
  3131.  
  3132.  
  3133.      In 'spline/line' mode, the graf resource takes a variable number of
  3134.      parameters:
  3135.  
  3136.      1. The letter 'S' specifying 'spline' mode, or the letter 'L' specifying
  3137.         'line' mode.
  3138.  
  3139.      2. An integer number indicating the number of handles (control points)
  3140.         that this graph window will have.  (Must be in the range 2-16,
  3141.         inclusive.)
  3142.  
  3143.      3. For each handle, there will be a ':', and the x and y positions of
  3144.         the handle, separated by a comma.  The x and y positions can be in
  3145.         the range 0-255 inclusive.
  3146.  
  3147.  
  3148.      Section 9.9.5: Other Resources
  3149.  
  3150.  
  3151.      Also, there are the boolean resources 'autoApply', 'displayMods', and
  3152.      'autoReset', which control the initial settings of the three checkboxes
  3153.      in the _x_v _c_o_l_o_r _e_d_i_t_o_r window.
  3154.  
  3155.      There are also boolean resources 'saveNormal', 'pspreview', and
  3156.      'pscompress' which control the initial settings of the checkboxes in the
  3157.      _x_v _s_a_v_e and _x_v _p_o_s_t_s_c_r_i_p_t windows.
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.    48                                                               Rev: 2.10
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.    Feb 26, 1992                                                         xv(l)
  3173.  
  3174.  
  3175.    LIMITATIONS
  3176.      _x_v will NOT work on displays that aren't 1-, 2-, 4-, 6-, 8-, 16- 24-, or
  3177.      32-bits deep.  Luckily, that should still cover nearly every display out
  3178.      there.  It may not work on certain 6- or 24-bit displays.
  3179.  
  3180.      It also only displays the first image in GIF files that have multiple
  3181.      images in them.
  3182.  
  3183.      As for PM pictures, this program only displays 1-plane PM_I pictures, or
  3184.      1-, 3-, or 4-plane PM_C pictures.
  3185.  
  3186.    PM FORMAT
  3187.      The PM format is a file format that we use at the GRASP Lab for our
  3188.      image processing work.  If you aren't at Penn, you are unlikely to ever
  3189.      run into a PM-format file, so don't worry about it.  Please ignore all
  3190.      references to PM.
  3191.  
  3192.      The 4-, 6-, 16-, 24-, and 32-bit code has not been extensively tested.
  3193.      (A 4-bit MicroVax GPX system, a 6-bit HP 9000/320, a 16-bit Sony 3710,
  3194.      and a 24-bit HP 9000/350, respectively.  The 32-bit code hasn't actually
  3195.      been tested at all.) You won't be able to do '-ncols 0' on a 6-, 16-,
  3196.      24-, or 32-bit display, not that you should want to.
  3197.  
  3198.    AUTHORS
  3199.      John Bradley  -  bradley@cis.upenn.edu
  3200.  
  3201.      GIF reading code based on gif2ras.c, by Patrick J. Naughton
  3202.      (naughton@wind.sun.com)
  3203.  
  3204.      GIF writing code essentially unchanged from code written by Michael
  3205.      Maudlin (mlm@cs.cmu.edu).
  3206.  
  3207.      SUN Rasterfile i/o code written by Dave Heath  (heath@cs.jhu.edu)
  3208.  
  3209.      JPEG interface code written by Markus Baur  (s_baur@iravcl.ira.uka.de)
  3210.  
  3211.      JPEG i/o code provided by the Independent JPEG Group.
  3212.  
  3213.      TIFF i/o code and interface code written by Sam Leffler  (sam@sgi.com)
  3214.  
  3215.      Portions of 'ppmquant' snarfed for the '-best24' algorithm. _p_p_m_q_u_a_n_t
  3216.      (and the rest of the _p_b_m_p_l_u_s package) was written by Jef Poskanzer.
  3217.      (jef@well.sf.ca.us)
  3218.  
  3219.      fsQuick code written and supplied by David B. Rosen  (rosen@cns.bu.edu).
  3220.      This code is a very fast implementation of Floyd-Steinberg dithering for
  3221.      1-bit b/w displays.
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.    Rev: 2.10                                                               49
  3232.  
  3233.